Envio GNU/Linux Firefox Plugin com bibliotecas compartilhadas (para instalação sem acesso à raiz)
-
26-09-2019 - |
Pergunta
O aplicativo é um plug -in do Firefox (carregado de $ home/.mozilla/plugins), portanto, o script do wrapper que define LD_Library_Path não é uma opção fácil.
Rath, até onde eu sei, não pode se referir a $ home e pode ser apenas um caminho absoluto.
O Firefox tenta dlopen, é o plug -in de ~/.mozilla/plugins, mas falha (porque depende de bibliotecas compartilhadas instaladas em algum lugar do diretório inicial do usuário).
Modificando o item do menu do Firefox para fornecer um invólucro (com ld_library_path) em torno do Firefox é muito hacky.
O que o Script do instalador deve fazer (sem acesso raiz) para fazer plug-ins de carga do Firefox padrão que depende da biblioteca compartilhada?
- Devo apenas tentar transformar tudo nisso. Então, para remover as dependências?
- Devo tentar criar o Script do instalador para terminar de vincular ou remendar RPath durante a fase de instalação?
Solução
Defina rpath como $ORIGIN/lib
Portanto, o carregador procurará bibliotecas em relação ao meu arquivo.
Script apenas descompacta o plugin para $HOME/.mozilla/plugins/myplugin.so
e bibliotecas para $HOME/.mozilla/plugins/lib/
RPath pode ser especificado para o vinculador, através do GCC, adicionando Wl,-rpath,'$ORIGIN/lib'
($
deve ser dobrado em um makefile) e também pode ser alterado após a compilação por patchelf
.