Оверлеи файловой системы

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

Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
3 885
2

Ответы 2

Взгляните на статью Управляйте своей средой затмения, особенно на Метод 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, которая будет:

  • ванильное затмение для любого пользователя, у которого 'id -a' не включает 'aGroup'
  • eclipse с плагинами для любой пользовательской части "aGroup"

Выглядит интересно, но я думал, что это можно сделать в Linux таким образом, чтобы это было прозрачно для Eclipse или любого другого приложения, просматривающего файловую систему (отсюда отсутствие тега «eclipse»). Похоже, то, как вы описываете, было бы болезненно изменить, когда я хочу «ванильное» Eclipse.

Dan Gravell 01.10.2008 15:35

ванильное затмение - это просто каталог «ссылок» вдали от затмения с обычным настраиваемым плагином. То есть, удалите каталог 'links', и вы получите ванильное затмение

VonC 01.10.2008 19:43

Хорошо, но что произойдет, если я захочу запустить два экземпляра одновременно, один ванильный и один с плагинами? Учитывая ленивую загрузку Eclipse, поведение не будет детерминированным ... например. если первая загружается первой, создается ссылка, а затем вторая, может ли первый увидеть каталог ссылок?

Dan Gravell 02.10.2008 17:37

нет, если вы создадите ссылку после запуска первого (ванильного) затмения, только второе затмение обнаружит плагины. Первый останется ванильным до выключения. Вы также можете создать удаленный каталог плагинов с атрибутом только для чтения для данной группы и запускать любой обычный сеанс из другой группы!

VonC 02.10.2008 18:05

Для этого вы можете использовать наложенную файловую систему. Три файловые системы оверлея, о которых я знаю в Linux, - это Unionfs, aufs и минифо.

Unionfs включен в последние ядра Ubuntu.

Другие вопросы по теме