Можно ли назначить второй каталог /, как и другие переменные среды, такие как PATH, LD_LIBRARY_PATH и т. д.?

Я использую Linux Mint для этого примера.

В качестве примера я извлек geany и geany-common в папку с помощью dpkg-deb. Я пытаюсь запустить его:

cd ~/Packages/geany/usr/bin
./geany

Мне дают ошибку:

(geany:9716): Geany-ERROR **: 07:02:33.815: Невозможно создать пользовательский интерфейс: Не удалось открыть файл «/usr/share/geany/geany.glade»: Нет такого файла или каталога

Программа ищет (жестко запрограммированное?) местоположение /usr/share/geany, которого у меня нет, потому что я распаковал файл .deb. Очевидно, что использование установщика пакета/сборки из исходного кода/прямого копирования файлов исправит это, но я не пытаюсь это сделать.

Можно ли назначить второй «/» для ~/Packages/geany/, чтобы при запуске Geany предполагал, что и «/», и «~/Packages/geany/» являются корнем файловой системы, и находил нужные файлы?


person Phil    schedule 08.02.2020    source источник


Ответы (2)


Один из способов — выполнить наложение через OverlayFS (руководство ). Я не уверен, что вы можете наложить / на себя, но вы, вероятно, можете наложить /usr и друзей.

Еще одна вещь, которую можно попробовать, не добавляя второй корневой каталог, — это докеризировать geany.

person root    schedule 08.02.2020
comment
Конечно, вы можете наложить сам корень /, посмотрите на любую систему OpenWRT/LEDE. Но ваше предложение использовать полный Docker, где OP может просто привязать монтирование или создать пространство имен монтирования с помощью основных инструментов, является полным излишеством. @Phil такие вопросы лучше задавать на unix.stackexchange.com - person Uncle Billy; 09.02.2020
comment
Я согласен, однако, как только вы создадите образ докера, вы сможете поделиться им с другими людьми, у которых такая же проблема. - person root; 09.02.2020
comment
OverlayFS звучит так, как будто это может работать, но я не могу понять, как это сделать. Первая проблема заключается в том, что папка Geany находится в той же файловой системе, что и /, а OverlayFS не поддерживает перекрытия. Вторая проблема заключается в том, какой будет точка монтирования? Допустим, я добавил его как /tmp/overlaydir, а это не /, поэтому Geany все равно будет искать /usr/.... вместо /tmp/overlaydir/usr/.... - person Phil; 09.02.2020
comment
Кажется вполне возможным поместить geany в другую файловую систему (даже в петлевую файловую систему), чтобы обойти первое ограничение. - person root; 09.02.2020
comment
Для второго ограничения вам нужно будет создать, например. под /homde/phil/packages/geany (т. е. у него будет подкаталог с именем usr), дерево каталогов со всеми отсутствующими вещами, которые нужны geany. затем вы бы наложили его на /, чтобы они существовали и были доступны на своем обычном пути (например, /usr/share/geany). - person root; 09.02.2020
comment
@root Docker — это излишество, и заставить его работать с OverlayFS гораздо сложнее, чем должно быть, для того, что я считаю простой задачей, но я приму ваш ответ, потому что использование файловой системы объединения и / или Docker будет работать , и, вероятно, это единственный способ сделать это. Спасибо! - person Phil; 10.02.2020

Будет ли работать изменение Пути? Вы пробовали это?

person Danyman    schedule 08.02.2020
comment
Это помогает? - person Danyman; 08.02.2020
comment
Как я уже сказал, я знаю, что могу скопировать файлы в нужные места, и это будет работать, но это не цель. Я пытаюсь хранить все файлы Geany в одном каталоге, не затрагивая остальную часть файловой системы. - person Phil; 08.02.2020