Como exportar LD_LIBRARY_PATH para todos os usuários e serviços do sistema

10

Eu quero exportar LD_LIBRARY_PATH para serviços do sistema e todos os usuários. Os serviços do sistema são executados antes do login, portanto .bashrc não é aplicável.

Como conseguir isso?

    
por linquize 29.08.2012 / 16:49

2 respostas

17

Você não precisa. Adicione o diretório a /etc/ld.so.conf ou um novo arquivo em /etc/ld.so.conf.d/ , dependendo da distribuição.

Depois disso, você deve executar (pelo menos no Redhat) ldconfig como root.

Como uma palavra de cautela, você precisa ter cuidado com as bibliotecas que você adiciona ao caminho da biblioteca compartilhada do sistema (através do ambiente, ld.so.conf, ou colocando em / usr / local / lib). Em particular, você tem cuidado com duas versões diferentes da mesma biblioteca com o mesmo soname. Por exemplo, se você tiver um libfoo.0.1 (soname libfoo.0) instalado via dpkg / rpm / etc., Você não quer um libfoo.0.2 (também soname libfoo.0) em seu diretório de biblioteca personalizado.

(Na verdade não é tão fácil extrair uma variável de ambiente para todo o sistema. Você pode obter a maioria dos logins de usuário com /etc/environment . Scripts dependerão do seu sistema init, mas (por exemplo) com sysv init no Debian, você poderia colocá-lo em /etc/default/rcS . Qualquer coisa sair direto do inittab, bem, eu não acho que você pode.)

    
por 29.08.2012 / 17:17
2

Você pode adicionar todos os caminhos no arquivo em /etc/ld.so.conf.d e, em seguida, executar:

ldconfig -v 

Carregue então eles.

    
por 30.08.2012 / 00:22