Después de muchos intentos con diferentes opciones, concluyo:
¿Existe una manera unificada de configurar la RUTA
para las aplicaciones lanzadas de diferentes formas (como script de shell, Finder y Spotlight)? Bueno, sí y no:
- No: Configurar la
RUTA
en los scripts de inicio de shell (por ejemplo, .bashrc
) solo funciona para aplicaciones lanzadas por shells.
- No: Configurar la
RUTA
para el proceso actual de launchd
a través de launchctl setenv PATH <...>
no funciona en absoluto para mí.
- Sí: Configurar la
RUTA
en /etc/launchd.conf
(y reiniciar el sistema) hará que la RUTA
apropiada sea visible en las aplicaciones lanzadas por Spotlight, Dock y Finder y posteriormente (en) shells locales.
- No: Las shells invocadas de forma remota no heredan el entorno. (Ver ...por qué las shells remotas a través de ssh NO heredan el entorno...)
Notas para la configuración de shells:
-
Para un funcionamiento correcto en las 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 RUTA
.
-
Para acomodar las shells remotas necesitas volver a importar el entorno de launchd
en la shell. Utiliza algo como esto en tu .bashrc
:
el irritante asunto de la ruta
eval $(launchctl export)
Las consecuencias desafortunadas de todo el problema son:
- No hay forma de tener estas configuraciones unificadas a nivel de usuario. (
~/.launchd.conf
no funciona.)
- No hay una forma fácil de construir la RUTA a partir de diferentes fuentes utilizando técnicas como la expansión del directorio de inicio, etc.