Después de muchas pruebas con diferentes opciones, concluyo:
¿Existe una forma unificada de configurar las PATH
aplicaciones iniciadas por diferentes medios (como script de shell, Finder y Spotlight)? Pues sí y no:
- No : la configuración
PATH
en scripts de inicio de shell (p .bashrc
. Ej. ) Funciona solo para aplicaciones iniciadas por shells.
- No : la configuración
PATH
del launchd
proceso actual a través de launchctl setenv PATH <...>
no me funciona en absoluto.
- Sí : Ajuste
PATH
en /etc/launchd.conf
(y reiniciar el sistema) hará que la adecuada PATH
visible en las aplicaciones iniciadas por proyectiles (locales) Spotlight, Dock y Finder y posteriormente.
- No : los shells invocados de forma remota no heredan el entorno. (Ver ... ¿por qué los shells remotos a través de ssh NO heredan el entorno ...? )
Notas para la configuración de conchas:
Para un funcionamiento correcto en shells locales , es importante desactivar el uso de /usr/libexec/path_helper
, porque las rutas predeterminadas en /etc/paths
podrían 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)
Las consecuencias desafortunadas de todo el problema son:
- No hay forma de tener estas configuraciones unificadas por usuario. (
~/.launchd.conf
no funciona)
- No hay una manera fácil de construir la RUTA a partir de diferentes fuentes utilizando técnicas como la expansión del directorio principal, et al.
/etc/launch.conf
no no trabajar para conchas registra en forma remota a través de SSH (supongo que debido a que elsshd
no pasa su entorno que hereda de su padrelaunchd
a la cáscara niño.). - Editaré la respuesta en consecuencia.eval "$(launchctl export)"
./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).Ampliando la respuesta anterior , para cambiar la ruta
/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:
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 de 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 "Super User DO") se utiliza porque se necesitan privilegios de administrador para escribir en ese directorio.Reinicie su computadora.
Y deberías estar listo. ¡Buena suerte!
fuente
launchd.conf
, sino cómo todas las aplicaciones obtienen la misma variable PATH de manera unificada.PATH
de mis aplicaciones GUI, y pensé que había que echar una mano lo que las almas pobres puede no saber cómo llevar a cabo el cambio ...Puede probar https://github.com/ersiner/osx-env-sync .
Maneja tanto la línea de comandos como las aplicaciones GUI desde una sola fuente . Y funciona con la última versión de OS X (Yosemite).
fuente
launchd
sistema. Su solución tiene los mismos problemas que se indican en la respuesta aceptada.