Acho que isso ajudará você a resolver
Quais são os lugares corretos para:
Acho que isso ajudará você a resolver
Para adicionar à resposta do sagarchalise, posso resumir o que o link sugere como locais apropriados para configurações.
/etc/environment
/etc/profile
ou /etc/bash.bashrc
Da página:
/etc/environment
[...] é especificamente destinado a todo o sistema configurações de variáveis de ambiente. Isto é não é um arquivo de script, mas consiste de expressões de atribuição, uma por linha. Especificamente, este arquivo armazena o locale e caminho do sistema configurações.
Usar /etc/profile
é um caminho bastante Unix-y, mas sua funcionalidade é bastante reduzida no Ubuntu. Existe apenas para apontar para /etc/bash.bashrc
e para coletar entradas de /etc/profile.d
.
No meu sistema, a única entrada de entrada interessante em profile.d é /etc/profile.d/bash_completion.sh
.
Uma versão anterior da página do Ubuntu recomendou ~/.pam_environment
, mas a página atualmente sugere que, se isso não funcionar, você deve usar
~/.profile
- Este é provavelmente o melhor arquivo para colocação de ambiente atribuições variáveis em, uma vez que fica executado automaticamente pelo DisplayManager durante a inicialização processo de sessão de desktop, bem como por o shell de login quando um log-in de o console textual.
~/.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 login. O Bash irá preferir ~/.bash_profile
a ~/.bash_login
. [...] Esses arquivos não influenciam uma sessão gráfica por padrão. "
~/.bashrc
- "... pode ser o lugar mais fácil para definir variáveis". Você tem:
/ etc / profile: arquivo .profile em todo o sistema para o shell Bourne (sh (1)) e shells compatíveis com Bourne (bash (1), ksh (1), ash (1), ...).
que em Lucid e Maverick correm
/etc/profile.d/*.sh
se presente, e se o shell do usuário é bash:
/etc/bash.bashrc
Para o ambiente do usuário, há uma matriz confusa específica para o shell e se ela é considerada um "shell de login". Se o shell é bash:
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
para sh / traço:
$HOME/.profile
para o zsh, nem vou tentar entender isso .
Conforme recomendado no link :
Variáveis de ambiente globais destinadas a afetar todos os usuários devem ir em /etc/environment
.
As variáveis de ambiente específicas do usuário devem ser definidas em ~/.pam_environment
.
Evite os arquivos profile e rc para configurar variáveis de ambiente no Ubuntu. Eles me causaram mais dores de cabeça do que valem.
Isto é mais fácil dizer do que fazer no entanto;)
É possível que você tenha a mesma lacuna de configuração que existia para mim. Veja a solução alternativa para a página inicial criptografada abaixo.
~/.pam_environment
: PATH DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK DEFAULT=${HOME}/Applications/jdk
Por que o caminho estático feio? ${PATH}
não funcionaria para mim. Eu tentei meu login várias vezes tentando contornar isso, então eu estou furando com a cópia estática feia dos padrões:)
Nas versões do Ubuntu até e incluindo o Precise 12.04 Beta 2, se você estiver usando um diretório pessoal criptografado, precisará modificar /etc/pam.d/common-session
para que ele carregue ~/.pam_environment
. Esta solução aparentemente funciona para versões anteriores, mas eu não testei isso.
Isso parece ser um problema com os diretórios pessoais criptografados. Eu adicionei
sessão requerida pam_env.so
no final de /etc/pam.d/common-session e agora ~ / .pam_environment é lido. Em outro sistema sem diretórios iniciais criptografados (também 10.04), a solução alternativa não é necessária. Talvez no meu caso, o sistema tente ler ~ / .pam_environment antes de ser descriptografado.
Adaptado da minha resposta no Superusuário: link