Modificación de la RUTA para que /usr/local/bin esté delante de /usr/bin

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 la ruta. 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 la ruta? ¿Debo crear un archivo .bash_profile? Gracias por cualquier ayuda de antemano.

Respuestas (2)

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
@threenovation si la respuesta anterior es correcta, le sugiero que la marque como respuesta (haga clic en la marca junto a la respuesta)
Me pregunto si esto debe ser exportado? Los procesos secundarios también deberían tener esta nueva ruta. Además: cuando configuré brew, no me alertó de que /usr/bin venía antes de /usr/local/bin.
@StevenLu, ya se exportó cuando llega a .bash_profile. No estaría de más exportarlo explícitamente de nuevo, pero no es necesario.
Gracias por esto. Funcionó "Su sistema está ansioso por prepararse".
Parece que estoy recibiendo entradas duplicadas en $PATH.

Debe modificar /etc/paths para que /usr/local/bin aparezca antes de /usr/bin . Necesitará sudo su editor para hacer eso.

Una de las formas de abrir el editor es

 sudo open -t /etc/paths
Mi PATH se configuró correctamente en mi .bash_profile, pero no en /etc/paths. Esto funcionó maravillosamente.
NO use este método para configurar su ruta; existe el riesgo de que las aplicaciones que no son 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 Entonces, ¿los cambios .bash_profileafectan solo a los shells de usuario interactivos y no a otras aplicaciones?
@flow2k .bash_profile afectará a los shells de usuario interactivos. Cualquier variable exportada será vista por las aplicaciones iniciadas desde la línea de comando del shell (por ejemplo, al iniciar una aplicación Mac "normal" o un comando de línea de comando). Se pueden encontrar algunos detalles más aquí, pero están haciendo una distinción más fina de lo que usted preguntó: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos La respuesta de glenn jackman es la que debe usar .
@rholmes Lo tengo, gracias. Mi punto fue que su comentario de 2014 se trata de aplicaciones que no se inician desde el shell. Para estas aplicaciones, .bash_profileno tendrá ningún efecto, pero /etc/paths . Ese era el punto que estabas haciendo en el comentario de 2014, ¿verdad?
@ flow2k sí, lo has dicho correctamente.