Definindo a variável de ambiente PATH no OSX permanentemente

142

Eu li várias respostas sobre como definir variáveis ​​ambientais no OSX como permanentemente.

Primeiro, tentei isso: Como definir permanentemente o $ PATH no Linux / Unix? mas eu tinha uma mensagem de erro dizendo no such file and directory, então eu pensei que eu poderia tentar ~/.bash_profileem vez de ~/.profile, mas não funcionou.

Segundo, eu encontrei esta solução Como definir o $ PATH conforme usado pelos aplicativos no os x , que aconselha fazer alterações

~ / .MacOSX / environment.plist

mas novamente tive no such file and directoryerro.

Eu preciso de uma maneira de definir essas variáveis, de modo que não seja necessário defini-las repetidamente sempre que abrir uma nova sessão de terminal.

patti_jane
fonte
você pode simplesmente criar ~ / .profile a maioria dos sistemas * nix reconhece o arquivo e usa-o, se existir. você pode precisar de uma reinicialização embora
trve.fa7ad
~ / .MacOSX / environment.plist está obsoleto.
Pierre ALBARÈDE

Respostas:

258

Você precisa adicioná-lo /etc/paths.

Referência (que funciona para mim): Aqui

Nitish
fonte
6
Esta é a única solução que funciona no El Capitan. Melhor do que modificar .bash_profilee .profile.
IgorGanapolsky
1
Votou a resposta para a referência adicionada, que explica como remover elementos do caminho (nos comentários) também.
Amudhan
Isso funcionou no EL Capitan. Feche todos os terminais e abra um novo terminal para verificar o eco $ PATH.
precisa saber é o seguinte
A resposta tem 5 anos, mas ainda é a solução mais fácil e mais simples. Obrigado pela resposta + a referência
Rachit Magon
Não se esqueça de 'reiniciar' o seu terminal.
Neeraj Singh 12/04
27

Descobri que existem alguns arquivos que podem afetar a $PATHvariável no macOS (funciona para mim, 10.11 El Capitan), listados abaixo:

  1. Como disse a resposta mais votada vi /etc/paths, o que é recomendado do meu ponto de vista.

  2. Também não se esqueça do /etc/paths.ddiretório, que contém arquivos, pode afetar a $PATHvariável, defina o caminho gite mono-commandno meu caso. Você pode ls -l /etc/paths.dlistar itens e rm /etc/paths.d/path_you_dislikeremover itens.

  3. Se você estiver usando um ambiente "bash" (o padrão Terminal.app, por exemplo), verifique ~/.bash_profileou ~/.bashrc. Pode não haver esse arquivo ainda, mas esses dois arquivos têm efeitos no $PATH.

  4. Se você estiver usando um ambiente "zsh" ( Oh-My-Zsh , por exemplo), verifique em ~./zshrcvez de fazer alguma ~/.bash*coisa.

E não esqueça de reiniciar todas as janelas do terminalecho $PATH . A $PATHstring será PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2.

Observe que as duas primeiras maneiras ( /etc/pathse /etc/path.d) estão no /diretório que afetará todas as contas em seu computador, enquanto as duas últimas maneiras ( ~/.bash*ou ~/.zsh*) estão no ~/diretório (aka /Users/yourusername/)) que afetam apenas as configurações da sua conta.

Leia mais: Mac OS X: Definir / alterar a variável $ PATH - nixCraft

iplus26
fonte
2
Eu gosto muito de editar Bash_profile em alguns casos, porque, então, se você tinha duas contas de usuário em sua máquina, você pode adicionar scripts apenas para um deles em por exemplo ~ / dev / scripts
PeteW
o que eu não percebi foi que eu estava usando zsh em vez de bash. obrigado!
Leoa
11

Você também pode adicionar este

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

para ~/.bash_profile, então crie ~/.bashrconde você pode adicionar mais caminhos ao PATH. Um exemplo com.

export PATH=$PATH:.
omoman
fonte
Obrigado. Eu usei a solução anterior, mas se eu aplicar esse método, isso significa que também posso definir variáveis ​​DYLD_LIBRARY_PATH como permanentes?
patti_jane
Sim, você deve ser capaz. Se você quiser ver as alterações, feche o terminal e abra-o novamente ou digite. ~/.bashrc
omoman
Eu adiciono o código acima a . ~/.bash_profile, em seguida, reabra o terminal e digite . ~/.bashrc, mas ele diz que não existe esse arquivo ou diretório?
31414 Patti_jane #
Você precisa criá-lo. As linhas acima dizem .bash_profilepara você carregar, .bashrcse existir. Depois, em branco .bashrc, você pode adicionar o que quiser.
Omoman
Muito obrigado! Sei que estou perguntando demais, mas você conhece um link no qual está indicado corretamente como criar .bashrc? Não consegui encontrar uma boa.
patti_jane
8

Você pode abrir qualquer um dos seguintes arquivos:

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

E adicione:

export PATH="$PATH:your/new/path/here"
Tiago
fonte
7

Para que um novo caminho seja adicionado à variável de ambiente PATH no MacOS, basta criar um novo arquivo no /etc/paths.ddiretório e adicionar o caminho de gravação a ser definido no arquivo. Reinicie o terminal. Você pode verificar com echo $PATHo prompt para confirmar se o caminho foi adicionado à variável de ambiente.

Por exemplo: para adicionar um novo caminho /usr/local/sbinà PATHvariável:

cd /etc/paths.d
sudo vi newfile

Adicione o caminho ao newfilee salve-o.

Reinicie o terminal e digite echo $PATHpara confirmar

Rishabh Mishra
fonte
Não sei ao certo por que esta resposta está sendo votada abaixo. Parece uma maneira razoável e sensata de organizar variáveis ​​de caminho. Eu usei paths.d para criar arquivos individuais para cada variável de caminho não padrão.
p_q
1

Eu tentei o primeiro método e passei pela página de referência, configuração de caminho bem executada.

IgnitedMind
fonte
1
Você fechou o terminal e reiniciou ou ligou sourcepara carregar o novo ambiente?
Dom
yaa..restarted terminal..but variável PATH novamente does't existe
IgnitedMind
Qual é a sua concha? Verifique com ps -p $$. Se não for bash, os arquivos de inicialização serão nomeados de maneira diferente.
Pierre ALBARÈDE
0

Para configurar o caminho no Mac, dois métodos podem ser seguidos.

  1. Criando um arquivo para o nome da variável e cole o caminho em /etc/paths.d e origine o arquivo em profile_bashrc.
  2. Exportar variável de caminho em ~/.profile_bashrccomo

    exportar VARIABLE_NAME = $ (PATH_VALUE)

E fonte o caminho. É simples e estável.

Você pode definir qualquer um path variablepor Mac terminalou linuxtambém.

Ram Krishna
fonte