Después de muchos ensayos con diferentes opciones, concluyo:
¿Hay una forma unificada para establecer el PATH para aplicaciones iniciadas por diferentes medios (como shell script, Finder y Spotlight)? Pues sí y no:
-
No : la configuración de
PATH en los scripts de inicio de shell (por ejemplo, .bashrc ) solo funciona para las aplicaciones iniciadas por shells.
-
No : la configuración de
PATH para el proceso launchd actual a través de launchctl setenv PATH <...> no me funciona en absoluto.
-
Sí : la configuración de
PATH en /etc/launchd.conf (y el reinicio del sistema) hará que el PATH apropiado sea visible en las aplicaciones lanzadas por Spotlight, Dock y Finder y, posteriormente, en shells (locales).
-
No : los shells invocados de forma remota no heredan el entorno. (Consulte ... ¿por qué los shells remotos a través de ssh NO heredan el ambiente .. )
Notas para la configuración de shells:
-
Para un funcionamiento correcto en local , es importante desactivar el uso de /usr/libexec/path_helper , porque las rutas predeterminadas en /etc/paths podrían cambiar la orden de las rutas en PATH . **
-
Para acomodar remotas , necesita volver a importar el entorno launchd en la 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 es una manera fácil de construir el PATH desde diferentes fuentes usando técnicas como home directory expansion et al.