Spedizione GNU / Linux Firefox plugin con le librerie condivise (per l'installazione senza accesso root)
-
26-09-2019 - |
Domanda
L'applicazione è un plugin per Firefox (caricato da $ HOME / .mozilla / plugins), script in modo wrapper che imposta LD_LIBRARY_PATH non è una scelta facile.
RPATH, per quanto ne so, non può fare riferimento a $ HOME e non può che essere percorso absolue.
Firefox cerca di dlopen è Plugin da ~ / .mozilla / plugins ma fallisce (perché dipende da librerie condivise da qualche parte nella home directory dell'utente installati).
voce di menu Modifica Firefox per fornire un involucro (con LD_LIBRARY_PATH) intorno a Firefox è troppo hacky.
Che cosa dovrebbe fare script di installazione (senza accesso root) per fare di carico standard di Firefox plug-in che dipende dalla libreria condivisa?
- devo solo cercare di fare incorporare tutto in che .so per rimuovere le dipendenze?
- Dovrei provare a fare script di installazione per completare il collegamento o cerotto RPATH durante la fase di installazione?
Soluzione
Set RPATH al $ORIGIN/lib
così il caricatore cercherà librerie relative al mio file.
Script appena spacchetta il plugin per $HOME/.mozilla/plugins/myplugin.so
e librerie per $HOME/.mozilla/plugins/lib/
rpath può essere specificato per linker se il gcc con l'aggiunta di Wl,-rpath,'$ORIGIN/lib'
($
dovrebbe essere raddoppiata in un Makefile) e può anche essere modificato dopo la compilazione da patchelf
.