Enmendar PATH para que / usr / local / bin esté por delante de / usr / bin

24

Estoy tratando de instalar brew pero recibo la siguiente advertencia:

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.

No tengo idea de cómo modificar el camino. He explorado varios archivos de esta publicación de desbordamiento de pila (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), pero no puedo encontrar una ruta relevante para editar. El único archivo que tengo que existe es mi archivo / etc / profile que actualmente se ve así:

# 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

Solo quería desinstalar Python y luego reinstalarlo a través de homebrew, pero estoy un poco nervioso por romper demasiadas cosas a la vez.

¿Hay una manera fácil de modificar el camino? ¿Debo crear un archivo .bash_profile? Gracias de antemano por cualquier ayuda.

Threenovation
fuente

Respuestas:

30

Sí, cree un .bash_profilearchivo en su directorio de inicio que contenga

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

y luego realice una de las siguientes acciones para activar el cambio

  • ejecutar . ~/.bash_profile
  • ejecutar PATH="/usr/local/bin:$PATH"en el shell actual
  • reiniciar Terminal
Glenn Jackman
fuente
2
@threenovation si la respuesta anterior es correcta, ¿puedo sugerirle que la marque como respuesta (haga clic en la marca junto a la respuesta)
Stu Wilson
Me pregunto si esto debería exportarse. Los procesos secundarios también deberían tener este nuevo camino. Además: cuando configuré brew, no me alertó de que / usr / bin era anterior a / usr / local / bin.
Steven Lu
@StevenLu, ya está exportado cuando llegas a .bash_profile. No estaría de más exportarlo explícitamente de nuevo, pero no es necesario.
Glenn Jackman
Gracias por esto. Funcionó "Su sistema está ansioso por prepararse".
Vezu
Parece que recibo entradas duplicadas $PATH.
flow2k
10

Debe modificar / etc / caminos para que / usr / local / bin aparezca antes / usr / bin . Tendrá que sudo su editor para hacer eso.

Una de las formas de abrir el editor es

 sudo open -t /etc/paths
Konstantin Spirin
fuente
Mi RUTA se configuró correctamente en mi .bash_profile, pero no en /etc/paths. Esto funcionó muy bien.
Nick Tomlin
77
NO use este método para establecer su ruta; existe el riesgo de que las aplicaciones que no sean de terminal recojan los componentes "elaborados" y fallen. Usar "sudo" también debería ser una señal de alerta a menos que realmente entiendas lo que estás haciendo (especialmente con un sistema de desarrollo a nivel de usuario como Mac Homebrew). Editar su .bash_profile y reiniciar el terminal debería ser suficiente.
rholmes
@rholmes Entonces, ¿los cambios solo .bash_profileafectan a los shells interactivos de los usuarios y no a otras aplicaciones?
flow2k
1
@ flow2k .bash_profile afectará a los shells interactivos de los usuarios. Las aplicaciones iniciadas desde la línea de comandos de la shell verán las variables exportadas (por ejemplo, el lanzamiento de una aplicación Mac "normal" o un comando de línea de comandos). Aquí se pueden encontrar más detalles, pero están haciendo una distinción más fina que la que usted pidió: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos La respuesta de Glenn Jackman es la que debe usar .
rholmes
1
@ flow2k sí, lo has dicho correctamente.
rholmes