Alterando PATH para que / usr / local / bin esteja à frente de / usr / bin

24

Estou tentando instalar o brew, mas recebo o seguinte aviso:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Não tenho ideia de como alterar o caminho. Eu explorei vários arquivos desta postagem de estouro de pilha (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), mas não consigo encontrar um caminho relevante para editar. O único arquivo que eu tenho que existe é o meu arquivo / etc / profile que atualmente se parece com:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

Eu queria apenas desinstalar o python e reinstalá-lo através do homebrew, mas estou um pouco nervoso por quebrar muitas coisas ao mesmo tempo.

Existe uma maneira fácil de alterar o caminho? Devo criar um arquivo .bash_profile? Obrigado por qualquer ajuda antecipadamente.

threenovation
fonte

Respostas:

30

Sim, crie um .bash_profilearquivo em seu diretório pessoal que contenha

PATH="/usr/local/bin:$PATH"

e siga um destes procedimentos para ativar a alteração

  • executar . ~/.bash_profile
  • executar PATH="/usr/local/bin:$PATH"no shell atual
  • reiniciar o Terminal
Glenn Jackman
fonte
2
@threenovation se a resposta acima está correto, eu sugiro que você pode marcá-lo como resposta (clique o carrapato ao lado da resposta)
Stu Wilson
Gostaria de saber se isso deve ser exportado? Os processos filhos também devem ter esse novo caminho. Além disso: quando configurei o brew, ele não me alertou que / usr / bin veio antes de / usr / local / bin.
Steven Lu
@StevenLu, já é exportado quando você chega ao .bash_profile. Não faria mal exportá-lo explicitamente novamente, mas não é necessário.
Glenn Jackman
Obrigado por isso. Trabalhou "O seu sistema está ansioso para preparar."
Vezu 29/05
Parece que estou recebendo entradas duplicadas $PATH.
flow2k
10

Você precisa alterar / etc / caminhos para que / usr / local / bin seja listado antes de / usr / bin . Você precisará sudo seu editor para fazer isso.

Uma das maneiras de abrir o editor é

 sudo open -t /etc/paths
Konstantin Spirin
fonte
Meu PATH foi configurado corretamente no meu .bash_profile, mas não no /etc/paths. Isso funcionou lindamente.
Nick Tomlin
7
NÃO use esse método para definir seu caminho - existe o risco de aplicativos não terminais pegarem os componentes "misturados" e falharem. Usar "sudo" também deve ser uma bandeira vermelha, a menos que você realmente entenda o que está fazendo (especialmente com um sistema de desenvolvimento em nível de usuário como o Mac Homebrew). Editar seu .bash_profile e reiniciar o terminal deve ser suficiente.
Rholmes
@rholmes Então, muda para .bash_profileafeta apenas as conchas interativas do usuário e não outros aplicativos?
flow2k
1
@ flow2k .bash_profile afetará os shells interativos do usuário. Quaisquer variáveis ​​exportadas serão vistas pelos aplicativos iniciados na linha de comando do shell (por exemplo, iniciando um aplicativo Mac "regular" ou um comando de linha de comando). Mais alguns detalhes podem ser encontrados aqui, mas eles estão fazendo uma distinção mais refinada do que você pediu: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos A resposta de glenn jackman é a única a ser usada .
Rholmes # 1/18
1
@ flow2k sim, você afirmou isso corretamente.
Rholmes