1

具体用例: 在 Eclipse IDE 中,可以通过将插件的文件复制到$ECLIPSE_HOME/plugins目录中来添加新的“插件”。但是,我想在没有额外插件的情况下保持我原来的 Eclipse 安装“干净”,因为我有时想自己运行这个基本安装。

有什么方法可以避免复制文件(因此无法运行干净的版本),而是在逻辑上“覆盖”另一个目录的内容,使其在运行时看起来在目录中?

例如:

gravelld@gravelld-laptop:~$ ls $ECLIPSE_HOME/plugins/
org.junit_3.8.2.v200706111738
org.junit4_4.3.1
org.junit.source_3.8.2.v200706111738
gravelld@gravelld-laptop:~$ ls myplugins/
org.dangravell.myplugin.jar
gravelld@gravelld-laptop:~$ overlay myplugins/ $ECLIPSE_HOME/plugins
gravelld@gravelld-laptop:~$ ls $ECLIPSE_HOME/plugins/
org.dangravell.myplugin.jar
org.junit_3.8.2.v200706111738
org.junit4_4.3.1
org.junit.source_3.8.2.v200706111738

另一个用例可能是补丁等等......

可以用符号链接或 mnt 来做些什么吗?

谢谢!

4

2 回答 2

3

您可以为此使用覆盖文件系统。我所知道的 Linux 中的三个覆盖文件系统是unionfsaufsminifo

Unionfs 包含在最近的 Ubuntu 内核中。

于 2008-10-05T03:47:08.027 回答
1

查看管理您的 Eclipse 环境一文,尤其是方法 3

创建链接文件夹来管理产品扩展

如果您的文件系统上有产品扩展,就像我们在方法 1 中所做的那样,您可以在 Eclipse 程序目录中创建一些简单的文件,以通知 Eclipse 它需要检查这些目录中的插件。

首先,在 Eclipse 安装文件夹(例如 /opt/eclipse)中创建一个名为 links 的目录。在此文件夹中,您可以创建 *.link 文件(例如,emfPlugins.link)。每个链接文件都指向一个产品扩展位置。Eclipse 将在启动时扫描此链接文件夹,并在链接文件指向的每个产品扩展中查找插件。

尽管新的 p2 供应系统完全不同,但 eclipse3.4 仍然支持这一点。


既然“'links'目录机制”是已知的,这意味着vanilla eclipse和带有自定义通用插件的eclipse之间的区别只是'links'目录的存在。

那么,为什么不使用内部带有符号链接的“vanilla eclipse 发行版”,“links”,指向 ../links 呢?

任何获得 vanilla eclipse 的用户起初都没有“链接”目录,因此它将作为 vanilla 发行版运行。但是一旦用户创建了一个链接目录或另一个符号链接到一个通用的远程“链接”目录,同一个发行版就会选择通用插件远程目录......

/path/links -> /remote/links/commonPlugins
/eclipse/links -> ../links

最后,如果您使用给定组“aGroup”创建“/remote/links/commonPlugins”,并使用“750”掩码保护它,您将拥有一个Eclipse 设置,它将是:

  • 'id -a' 不包括 'aGroup' 的任何用户的香草日食
  • 带有“aGroup”任何用户部分的插件的eclipse
于 2008-10-01T11:26:32.190 回答