Quais são os locais corretos para:
- Variáveis de ambiente globais destinadas a afetar todos os usuários?
- Variáveis de ambiente específicas do usuário?
Quais são os locais corretos para:
Eu acho que a página wiki da comunidade sobre variáveis de ambiente o ajudará a resolver
Para adicionar à resposta de sagarchalise, posso resumir o que o link sugere como locais apropriados para as configurações.
Para configurações globais, variáveis de ambiente em todo o sistema
/etc/environment
/etc/profile
ou/etc/bash.bashrc
Na página:
Usar
/etc/profile
é um caminho bastante Unix-y, mas sua funcionalidade é bastante reduzida no Ubuntu. Existe apenas para apontar/etc/bash.bashrc
e para coletar entradas/etc/profile.d
.No meu sistema, a única entrada interessante em profile.d é
/etc/profile.d/bash_completion.sh
.Para configurações locais ou por usuário
Uma versão anterior da página Ubuntu é recomendada
~/.pam_environment
, mas a página atualmente sugere que, se isso não funcionar, você deve usar~/.bash_profile
ou~./bash_login
- Se um deles existir, o bash o executa em vez de~/.profile
quando o bash é iniciado como um shell de logon. Bash vai preferir~/.bash_profile
a~/.bash_login
. [...] Esses arquivos não influenciam uma sessão gráfica por padrão ".~/.bashrc
- "... pode ser o local mais fácil para definir variáveis".fonte
/etc/environment
e quando? Não parece trabalhar com cron, mesmo quando se usaSHELL=/bin/bash
/etc/environment
gostamJAVA_HOME="/opt/java"
eANT_HOME="/opt/ant"
como fazê-loVocê tem:
que em Lucid e Maverick correm
se presente, e se o shell do usuário for bash:
Para o ambiente do usuário, existe uma matriz confusa específica para o shell e se é considerado um "shell de login". Se o shell for bash:
para sh / dash:
para zsh, eu nem vou tentar entender isso .
fonte
Conforme recomendado em https://help.ubuntu.com/community/EnvironmentVariables :
Variáveis de ambiente globais destinadas a afetar todos os usuários devem entrar
/etc/environment
.As variáveis de ambiente específicas do usuário devem ser definidas
~/.pam_environment
.Evite os arquivos profile e rc para definir variáveis de ambiente no Ubuntu. Eles me causaram mais dores de cabeça do que valem.
Isso é mais fácil dizer do que fazer, no entanto;)
É possível que você encontre a mesma lacuna de configuração que existia para mim. Veja a solução alternativa para a casa criptografada abaixo.
Meu
~/.pam_environment
:Por que o caminho estático feio?
${PATH}
não funcionaria para mim. Eu bloqueei meu login várias vezes, tentando contorná-lo, por isso continuo com a cópia estática feia dos padrões :)Solução alternativa para pastas domésticas criptografadas
Nas versões do Ubuntu até o Precise 12.04 Beta 2, inclusive, se você estiver usando um diretório inicial criptografado, precisará modificá
/etc/pam.d/common-session
-lo para carregá-lo~/.pam_environment
. Aparentemente, esta solução funciona para versões anteriores, mas ainda não a testei.Guenther Montag (g-montag) escreveu em 19/08/2010:
Adaptado da minha resposta no Superusuário: https://superuser.com/a/408373/66856
fonte
${HOME}
também não funcionará. Não há expansão no.pam_environment
..pam_environment
, masHOME
não é definido tão cedo normalmente. Se essa linha tivesse sido lidaDEFAULT=${PATH}/Applications/jdk
, você teria visto o valorPATH
inserido nela.