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で私が知っている3つのオーバーレイファイルシステムは、unionfsaufs、およびminifoです。

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' ディレクトリ メカニズム」が判明したので、バニラ Eclipse とカスタム共通プラグインを使用した Eclipse の違いは、その「links」ディレクトリの存在だけであることを意味します。

では、../links を指す「リンク」内のシンボリック リンクを含む「バニラ エクリプス ディストリビューション」を用意してみませんか?

バニラ Eclipse を取得したユーザーは、最初は「リンク」ディレクトリを横に持っていないため、バニラ ディストリビューションとして実行されます。しかし、ユーザーがリンク ディレクトリを作成するか、共通のリモート「リンク」ディレクトリへの別のシンボリック リンクを作成するとすぐに、その同じディストリビューションが共通のプラグイン リモート ディレクトリを取得します...

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

最後に、特定のグループ「aGroup」で「/remote/links/commonPlugins」を作成し、それを「750」マスクで保護すると、次の1 つのEclipse セットアップが作成されます。

  • 「id -a」に「aGroup」が含まれていないユーザーのバニラエクリプス
  • 「aGroup」のユーザー部分のプラグインを使用したEclipse
于 2008-10-01T11:26:32.190 に答える