En Mountain Lion, ¿cómo configuro, en un solo lugar, la variable de entorno PATH para todas las aplicaciones recién lanzadas?

9

En Ask Different, hay muchas preguntas con respecto a la variable de entorno PATH y cómo configurarla para aplicaciones iniciadas por un shell, por foco o por medio del buscador (preguntas típicas: Cómo establecer PATH para aplicaciones lanzadas por el Finder o Cómo cambiar la variable de entorno PATH ... ).

Las respuestas van desde sh startup scripts a /etc/paths hasta /etc/launchd.conf . Aquí estoy después de la respuesta para una configuración unificada de PATH para todas las aplicaciones en Mac OS X Mountain Lion 10.8.2.

    
pregunta halloleo 30.03.2013 - 11:55

3 respuestas

13

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.
  • : 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:

  1. 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 . **

  2. 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.
respondido por el halloleo 30.03.2013 - 11:55
3

Ampliando en la respuesta anterior , para cambiar la ruta en /etc/launchd.conf , deberás hacerlo lo siguiente.

  1. Asegúrese de tener privilegios de administrador.

  2. Cree un nuevo archivo de texto con el siguiente contenido, modificado para adaptarse a sus necesidades:

    setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin
    
  3. Guárdalo en tu directorio de inicio como launchd.conf .

  4. Abre Terminal.app (o tu sustituto favorito) y escribe:

    sudo mv ~/launchd.conf /etc

    Dependiendo de su uso anterior del comando sudo , puede recibir un breve mensaje de "tenga cuidado al hacer lo que está haciendo", pero de todas formas deberá ingresar su contraseña. Todo lo que hace el comando es mover el archivo al directorio /etc , al que no se puede acceder directamente al guardar un archivo en TextEdit, por ejemplo. Se utiliza sudo (abreviatura de "Superusuario de usuario") porque se necesitan privilegios de administrador para escribir en ese directorio.

  5. Reinicia tu computadora.

Y deberías estar todo listo. Buena suerte!

    
respondido por el MattDMo 06.08.2013 - 09:23
-2

Puede probar enlace .

Maneja aplicaciones de línea de comandos y GUI desde fuente única . Y funciona con la última versión de OS X (Yosemite).

    
respondido por el Ersin Er 07.09.2015 - 20:59

Lea otras preguntas en las etiquetas