Como eu adiciono um diretório ao $PATH
no Ubuntu e faço as mudanças permanentes?
Um caminho definido em .bash_profile' só será definido em uma shell de login bash (
bash -l').
Se você colocar seu caminho em `.profile' ele estará disponível para sua sessão desktop completa. Isso significa que até mesmo metacidades irão utilizá-lo.
Por exemplo ~/.perfil
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, você pode verificar a variável PATH de um processo olhando seu ambiente em /proc/[pid]/environ
(substitua [pid] pelo número do ps axf
). Por exemplo, use grep -z "^PATH" /proc/[pid]/environ
.
bash
como uma shell de login não't parse .profile
se ou .bash_profile
ou .bash_login
existe. A partir de man bash
:
procura por ~/.bash_profile, ~/.bash_login, e ~/.profile, nesse ordena, e lê e executa comandos a partir do primeiro que existe e é legível.
Veja as respostas abaixo para informações sobre .pam_environment', ou
.bashrc' para shells interativas não-login, ou defina o valor globalmente para todos os usuários colocando um script em /etc/profile.d/
ou utilize /etc/X11/Xsession.d/
para afetar a sessão dos gerenciadores de exibição.
Edite o .bashrc
no seu diretório home e adicione a seguinte linha:
export PATH="/path/to/dir:$PATH"
Você precisará fazer a fonte do seu .bashrc' ou logout/login (ou reiniciar o terminal) para que as alterações tenham efeito. Para obter o código fonte do seu
.bashrc', simplesmente digite
$ source ~/.bashrc
Adicioná-lo ao .bashrc vai funcionar, mas eu acho que a maneira mais tradicional de configurar as variáveis do seu caminho é em .bash_profile, adicionando as seguintes linhas.
PATH=$PATH:/my/path/foo
export PATH
De acordo com esta linha, parece que o comportamento do Ubuntu's é ligeiramente diferente do do RedHat e dos clones.