/etc/environment
é interpretado durante o login. Portanto, a maneira correta de ver as alterações feitas em /etc/environment
é fazer logout e login novamente.
sudo
funciona porque emula parcialmente o login como root ( sudo -i
emula o login com mais precisão).
source /etc/environment
não funciona, porque source
é um comando shell que diz ao shell para interpretar o arquivo fornecido como um script de shell. O problema é: /etc/environment
não é um script de shell. É uma lista do par de nome-valor variável de ambiente no formato:
name="value"
Essa linha, para um shell, é a definição de uma variável global , que pode ser vista apenas pelo próprio shell. Programas executados a partir do shell não podem vê-lo. A maneira correta de definir uma variável de ambiente é usando o comando export
shell:
export name="value"
Então, se você realmente quiser usar o seu novo LD_LIBRARY_PATH
sem sair, você deve executar o seguinte comando em vez de source /etc/environment
:
export LD_LIBRARY_PATH="/opt/..."
UPDATE: LD_LIBRARY_PATH
não pode ser definido em /etc/environment
devido a ssh-agent
. Para obter detalhes, consulte bug # 47958 e a página wiki do Ubuntu em variáveis de ambiente . Conforme especificado na página da wiki, existe uma solução alternativa e consiste em usar /etc/ld.so.conf.d
.
Por exemplo, você pode criar /etc/ld.so.conf.d/opt.conf
com o seguinte conteúdo:
# Paths for my cool libraries
/opt/...
Embora isso esteja listado como uma solução alternativa, ld.so.conf.d
é, na verdade, o local mais apropriado para essas configurações.