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

12

Quero exportar LD_LIBRARY_PATHpara serviços do sistema e todos os usuários. Os serviços do sistema são executados antes do login, portanto, .bashrcnão é aplicável.

Como conseguir isso?

ceder
fonte
1
Você poderia elaborar qual é o problema real que você está tentando resolver?
30512 Keith

Respostas:

20

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

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

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

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

derobert
fonte
@bahamat Acho que devido a uma sobreposição de edição, você acabou de tirar um parágrafo da minha resposta. Vou adicioná-lo de volta ..
derobert 29/08/2012
Não, eu apenas o removi porque "você não precisa" já resume e é muito mais conciso.
bahamat
@bahamat Verifique o log de edição, unix.stackexchange.com/posts/46620/revisions ... Acho que o que aconteceu foi que ambos clicamos no link de edição, depois enviei minha alteração (o parágrafo extra) e você a enviou (que obviamente não incluía o parágrafo extra). Parece que Stackexchange deve detectar isso e avisar em voz alta, mas, aparentemente, não ...
derobert
Não, acabei de remover explicitamente esse parágrafo porque achava desnecessário. Não fiz outras alterações. Nossas edições foram separadas por 6m e a que veio depois de mim foi 12m depois. Não foi uma colisão.
bahamat
@bahamat Ah, deixando um comentário editar teria esclarecido a confusão ...
derobert
3

Você pode adicionar todos os caminhos no arquivo /etc/ld.so.conf.de executar:

ldconfig -v 

Depois carregue-os.

PersianGulf
fonte