Поставляется плагин GNU / Linux Firefox с общими библиотеками (для установки без прав root) - PullRequest
4 голосов
/ 10 июня 2010

Приложение представляет собой плагин Firefox (загружается из $ HOME / .mozilla / plugins), поэтому скрипт-обертка, который устанавливает LD_LIBRARY_PATH, не является простым вариантом.

RPATH, насколько я знаю, не может ссылаться на $ HOME и может быть только абсолютным путем.

Firefox пытается извлечь свой плагин из ~ / .mozilla / plugins, но не удается (потому что это зависит от общих библиотек, установленных где-то в домашнем каталоге пользователя).

Изменение пункта меню Firefox для предоставления оболочки (с LD_LIBRARY_PATH) вокруг Firefox слишком хакерское.

Что должен делать скрипт установщика (без root-доступа), чтобы стандартные загрузочные плагины Firefox зависели от общей библиотеки?

  1. Должен ли я просто попытаться встроить все в этот .so, чтобы удалить зависимости?
  2. Должен ли я попытаться сделать сценарий установщика, чтобы завершить компоновку или установить исправление RPATH на этапе установки?

1 Ответ

4 голосов
/ 11 июня 2010

Установите RPATH на $ORIGIN/lib, чтобы загрузчик искал библиотеки, относящиеся к моему файлу.

Скрипт просто распаковывает плагин на $HOME/.mozilla/plugins/myplugin.so и библиотеки на $HOME/.mozilla/plugins/lib/

rpath может быть указан для компоновщика, хотя gcc добавляется Wl,-rpath,'$ORIGIN/lib' ($ должен быть удвоен в Makefile) и также может быть изменен после компиляции на patchelf.

...