Конкретный вариант использования:
В 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?
Спасибо!





Взгляните на статью Управляйте своей средой затмения, особенно на Метод 3.
Creating a links folder to manage product extensions
If you have product extensions sitting on your file system, like the one we made in Method 1, you can create a few simple files in your Eclipse program directory to notify Eclipse that it needs to check these directories for plug-ins.
First, create a directory inside your Eclipse installation folder (for example, /opt/eclipse) called links. Within this folder, you can create *.link files (for example, emfPlugins.link). Each link file points to a product extension location. Eclipse will scan this links folder on startup and find the plug-ins in each product extension pointed to by a link file.
Это по-прежнему поддерживается в eclipse3.4, хотя новая система подготовки p2 сильно отличается.
Теперь, когда известен «механизм каталогов ссылок», это означает, что разница между обычным затмением и затмением с настраиваемыми общими плагинами заключается только в наличии этого каталога «ссылок».
Так почему бы не создать «ванильный дистрибутив затмения» с символической ссылкой внутри «links», указывающей на ../links?
Любой пользователь, получивший это ванильное затмение, сначала не будет иметь рядом с ним каталога «ссылки», поэтому он будет работать как ванильный дистрибутив. Но как только пользователь создаст каталог ссылок или создаст другую символическую ссылку на общий удаленный каталог ссылок, тот же самый дистрибутив подберет удаленный каталог общих плагинов ...
/path/links -> /remote/links/commonPlugins
/eclipse/links -> ../links
Наконец, если вы создадите «/ remote / links / commonPlugins» с заданной группой «aGroup» и защитите ее маской «750», у вас будет собственная настройка один eclipse, которая будет:
ванильное затмение - это просто каталог «ссылок» вдали от затмения с обычным настраиваемым плагином. То есть, удалите каталог 'links', и вы получите ванильное затмение
Хорошо, но что произойдет, если я захочу запустить два экземпляра одновременно, один ванильный и один с плагинами? Учитывая ленивую загрузку Eclipse, поведение не будет детерминированным ... например. если первая загружается первой, создается ссылка, а затем вторая, может ли первый увидеть каталог ссылок?
нет, если вы создадите ссылку после запуска первого (ванильного) затмения, только второе затмение обнаружит плагины. Первый останется ванильным до выключения. Вы также можете создать удаленный каталог плагинов с атрибутом только для чтения для данной группы и запускать любой обычный сеанс из другой группы!
Выглядит интересно, но я думал, что это можно сделать в Linux таким образом, чтобы это было прозрачно для Eclipse или любого другого приложения, просматривающего файловую систему (отсюда отсутствие тега «eclipse»). Похоже, то, как вы описываете, было бы болезненно изменить, когда я хочу «ванильное» Eclipse.