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.