Доставка GNU / Linux Firefox Плагин с общими библиотеками (для установки без корневого доступа)
-
26-09-2019 - |
Вопрос
Приложение представляет собой плагин Firefox (загруженный от $ HOME / .MOZILLA / Плагинов), поэтому скрипт обертки, который устанавливает LD_LIBRARY_PATH, не является простым вариантом.
Ратуат, насколько я знаю, не может ссылаться на $ домой и может быть только абсолютный путь.
Firefox пытается Dlopen это плагин от ~ / .mozilla / plugins, но не удается (потому что это зависит от общего библиотек, установленных где-то в домашнем каталоге пользователя).
Изменение пункт меню Firefox для обеспечения обертки (с LD_LIBRARY_PATH) вокруг Firefox слишком хакей.
Что должен сделать скрипт установщика (без корневого доступа), чтобы сделать стандартные плагины нагрузки Firefox, которые зависят от общей библиотеки?
- Должен ли я просто попытаться сделать встроить все в это .so, чтобы удалить зависимости?
- Должен ли я попытаться сделать сценарий установщика для завершения ссылки или Patch Rpath во время фазы установки?
Решение
Установить рапуску $ORIGIN/lib
Таким образом, загрузчик будет искать библиотеки относительно моего файла.
Сценарий просто распаковывает плагин к $HOME/.mozilla/plugins/myplugin.so
и библиотеки к $HOME/.mozilla/plugins/lib/
DPATH может быть указан ссылками, хотя GCC, добавив Wl,-rpath,'$ORIGIN/lib'
($
следует удвоить в казейле) и может также быть изменен после компиляции patchelf
.