Adicione o seguinte ao seu .bashrc
:
vim ~/.bashrc
...
export LD_LIBRARY_PATH=/usr/local/lib
Isso permitirá que você reinicie seu computador e ainda tenha esse caminho atribuído.
Eu recebo erros de biblioteca compartilhada sempre que pareço instalar o software manualmente. Ao executar echo $LD_LIBRARY_PATH
, ele aparece como ... nada . Eu tentei adicionar /usr/local/lib
a um arquivo .conf
em /etc/ld.so.conf.d
, mas parece que nunca é executado.
Isso não funciona (citações ou outras):
LD_LIBRARY_PATH="/usr/local/lib"
export LD_LIBRARY_PATH
sudo ldconfig -v
O valor será definido temporariamente, mas não reterá o valor se eu sair tanto de uma janela de terminal. A reinicialização também não faz nada.
No Red Hat Enterprise Linux (RHEL) 6, /etc/ld.so.conf
contém include ld.so.conf.d/*.conf
. Sem essa linha, itens em /etc/ld.so.conf.d/*.conf
nunca seriam analisados.
Para ver quais bibliotecas / diretórios ldconfig
estão analisando
ldconfig -v
Print current version number, the name of each directory as it is scanned, and any links that are created.
Eu finalmente resolvi isso com um alias:
alias sudo='sudo PATH="$PATH" HOME="$HOME" LD_LIBRARY_PATH="$LD_LIBRARY_PATH"'
Certifique-se de usar aspas simples, para que as variáveis sejam expandidas no momento da chamada, e não no momento em que o alias for definido.
Isto:
(Você pode ver com o que as coisas são definidas: sudo bash -c "echo $HOME"
)
Estou trabalhando com drivers personalizados e sempre tenho que usar meus programas de teste para acessar o driver. Eu não quero instalar versões de teste de bibliotecas na área do sistema, então eu uso LD_LIBRARY_PATH para configurar um diretório de teste específico conforme necessário. Eu não posso apenas definir um LD_LIBRARY_PATH fixo, eu preciso ser capaz de alterá-lo e manter a configuração atual. Preservar o PATH e o HOME me dá acesso ao meu ambiente de trabalho - scripts e estrutura de diretórios.
Esse alias evita ter que conceder permissões gerais a sudoers ... e aparentemente não há solução alternativa para LD_LIBRARY_PATH, independentemente das configurações dos sudoers. Não funciona sudo dentro de scripts, mas estes podem ser codificados conforme necessário.