Después de muchas pruebas con diferentes opciones, concluyo:
¿Existe una forma unificada de configurar las PATHaplicaciones iniciadas por diferentes medios (como script de shell, Finder y Spotlight)? Pues sí y no:
- No : la configuración
PATHen scripts de inicio de shell (p .bashrc. Ej. ) Funciona solo para aplicaciones iniciadas por shells.
- No : la configuración
PATHdel launchdproceso actual a través de launchctl setenv PATH <...>no me funciona en absoluto.
- Sí : Ajuste
PATHen /etc/launchd.conf(y reiniciar el sistema) hará que la adecuada PATHvisible 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/pathspodrían cambiar el orden de las rutas en PATH. **
Para acomodar shells remotos , debe volver a importar el launchdentorno 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.confno 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.confno no trabajar para conchas registra en forma remota a través de SSH (supongo que debido a que elsshdno pasa su entorno que hereda de su padrelaunchda la cáscara niño.). - Editaré la respuesta en consecuencia.eval "$(launchctl export)"./etc/launchd.confes 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 /etcDependiendo de su uso anterior del
sudocomando, 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/etcdirectorio, 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.PATHde 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
launchdsistema. Su solución tiene los mismos problemas que se indican en la respuesta aceptada.