31 votos

Forma correcta de añadir rutas a PATH en mojave

No tengo claro como añadir permanentemente rutas a la env var PATH. He encontrado varias preguntas para esto cada vez con una respuesta diferente. He creado un .bash_profile en mi home dir, pero cada vez que reinicio tengo que manualmente export mis caminos de nuevo.

source ~/.bash_profile ni siquiera funciona.

¿Qué me estoy perdiendo?

Este es actualmente mi .bash_profile

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
export PATH="/usr/local/opt/openssl/bin:$PATH"
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

1 votos

¿Qué quieres decir con "source ~/.bash_profile ni siquiera funciona"? ¿Recibe un mensaje de error?

1 votos

Salir de Terminal, luego volver a abrirlo... ¿cuál es el resultado de: echo $PATH

0 votos

@user3439894 sí que es extraño, en realidad los caminos están todos aquí, primera fila excluidos (el de Python)

37voto

slm Puntos 118

Lo que has expuesto es la forma correcta de añadir directorios adicionales a la carpeta de tu usuario $PATH .

( _NOTA: Estas instrucciones son para Macs que utilizan la función bash concha. A partir de MacOS 10.15 (Catalina), los Mac utilizan zsh por defecto. Todos los pasos que se indican a continuación se siguen aplicando con la excepción de que el archivo es ~/.zshrc en lugar de ~/.bash_profile . Si no está seguro de qué shell está utilizando, debería poder ejecutar el comando ps -p $$ para resolverlo_ )

Paso 1 - ~/.bash_profile

Para empezar, edita tu ~/.bash_profile añadiendo los lugares que desee modificar a su $PATH .

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
export PATH="/usr/local/opt/openssl/bin:$PATH"
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"

Paso 2 - Fuente ~/.bash_profile

Después de realizar las modificaciones anteriores en este archivo, puede utilizar la función source o el comando . para "recargar" los cambios realizados en este archivo en el contexto del shell actual.

$ . ~/.bash_profile

-o-

$ source ~/.bash_profile

Paso 3 - Evaluar los cambios

Una vez realizadas las modificaciones, puede confirmar que han surtido el efecto deseado repitiendo el contenido del archivo $PATH varible.

$ echo $PATH | tr ':' '\n'
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/Applications/Wireshark.app/Contents/MacOS
/usr/local/sbin
/Users/smingolelli/bin
/usr/local/opt/go/libexec/bin
/Applications/Visual Studio Code.app/Contents/Resources/app/bin
/Users/smingolelli/projects/kubebuilder/kubebuilder_1.0.5_darwin_amd64/bin/

El orden es importante, por lo que los directorios que aparezcan en primer lugar se buscarán primero. Si un binario vive en varios lugares, el primero que se encuentre será el que se utilice.

También tenga en cuenta que múltiples fuentes de este archivo tendrá un efecto negativo de seguir añadiendo los mismos cambios, por lo que es a menudo el caso de que usted querrá completamente se la $PATH a un estado inicial consistente conocido y luego modificarlo con este tipo de comandos:

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
export PATH="/some/new/dir:$PATH"

Uso de path_helper

MacOS también incluye un ayudante para asistirle en la gestión de su $PATH . Se encuentra aquí /usr/libexec/path_helper .

Así que en lugar de crear manualmente tu base $PATH como se mencionó anteriormente, puede utilizar este fragmento para obtener un buen punto de partida conocido para su $PATH .

[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)

Esto se encargará de inicializar $PATH por lo que cualquier directorio listado en /etc/paths y /etc/paths.d/ se añaden automáticamente.

2 votos

Sería mejor utilizar [ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s) para inicializar la ruta de modo que cualquier directorio listado en /etc/paths y /etc/paths.d/ se añaden automáticamente.

1 votos

@nohillside tiene sentido. No era consciente de que MacOS tenía este ayudante, gracias, Voy a añadir a A'er.

1 votos

Eche un vistazo a /etc/profile . No pasa mucho ahí, pero inicializar PATH forma parte de ella.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X