En Ask Different hay muchas preguntas con respecto a la PATH
variable de entorno y cómo configurarla para aplicaciones iniciadas por un shell, por Spotlight o a través del buscador (preguntas típicas: cómo configurar PATH para aplicaciones iniciadas por Finder o cómo cambiar la variable de entorno PATH. .. ).
Las respuestas van desde sh
scripts/etc/paths
de inicio hasta /etc/launchd.conf
. Aquí estoy buscando la respuesta para una configuración unificadaPATH
de todas las aplicaciones en Mac OS X Mountain Lion 10.8.2.
Después de muchas pruebas con diferentes opciones concluyo:
¿Existe una forma unificada de configurar las PATH
aplicaciones lanzadas por diferentes medios (como script de shell, Finder y Spotlight)? Pues si y no:
PATH
en los scripts de inicio de shell (por ejemplo .bashrc
, ) solo funciona para las aplicaciones iniciadas por shells.PATH
para el launchd
proceso actual a través launchctl setenv PATH <...>
de no funciona para mí en absoluto.PATH
del /etc/launchd.conf
sistema) hará PATH
visible lo apropiado en las aplicaciones iniciadas por Spotlight, Dock y Finder y, posteriormente, shells (locales). Para un funcionamiento correcto en shells locales , es importante desactivar el uso de /usr/libexec/path_helper
, porque las rutas predeterminadas en /etc/paths
pueden cambiar el orden de las rutas en PATH
.**
Para acomodar shells remotos , debe volver a importar el launchd
entorno en el shell. Use algo como esto en su .bashrc
:
# the vexatious path stuff
eval $(launchctl export)
~/.launchd.conf
no funciona.)Ampliando la respuesta anterior , para cambiar la ruta en /etc/launchd.conf
, deberá hacer lo siguiente.
Asegúrese de tener privilegios de administrador.
Cree un nuevo archivo de texto con el siguiente contenido, modificado para satisfacer sus necesidades:
setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin
Guárdelo en su directorio de inicio como launchd.conf
.
Abra Terminal.app (o su sustituto favorito) y escriba:
sudo mv ~/launchd.conf /etc
Dependiendo de su uso anterior del sudo
comando, puede recibir un breve mensaje de "tenga cuidado al hacer lo que está haciendo", pero de cualquier manera deberá ingresar su contraseña. Todo lo que hace el comando es mover el archivo al /etc
directorio, al que no se puede acceder directamente al guardar un archivo en TextEdit, por ejemplo. sudo
(abreviatura de "Superusuario DO") se utiliza porque se necesitan privilegios de administrador para escribir en ese directorio.
Reinicie su computadora.
Y deberías estar listo. ¡Buena suerte!
launchd.conf
, sino sobre cómo todas las aplicaciones obtienen la misma variable PATH de manera unificada.PATH
mis aplicaciones GUI, y pensé que ayudaría a las pobres almas que no supieran cómo efectuar el cambio...Puede probar https://github.com/ersiner/osx-env-sync .
Maneja aplicaciones tanto de línea de comando como de GUI desde una sola fuente . Y funciona con la última versión de OS X (Yosemite).
launchd
también utiliza el sistema. Su solución tiene los mismos problemas que se indican en la respuesta aceptada.
halloleo
/etc/launch.conf
funciona para los shells que iniciaron sesión de forma remota a través de ssh (supongo que porque no pasa su entorno que hereda de su padre al shell secundario). - Editaré la respuesta en consecuencia.sshd
launchd
halloleo
mklement0
eval "$(launchctl export)"
.sin ladera
/etc/launchd.conf
es simplemente ejecutarsudo -e /etc/launchd.conf
(si está familiarizado con vi) oEDITOR=nano sudo -e /etc/launchd.conf
(si prefiere un editor no modal).