¿Cómo cambiar la variable de entorno PATH a OS X 10.8 Mountain Lion que será visible para las aplicaciones GUI? [duplicar]

13

Probé todos los métodos que escuché para establecer variables de entorno en OS X 10.8, pero ninguno de ellos parece funcionar.

Para probar, ejecute un script bash desde una aplicación de GUI como Eclipse o IntelliJ IDEA.

#!/bin/bash
set|grep PATH

Las cosas que probé y que no funcionan incluso después de reiniciar:

  • /etc/paths y /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (lista binaria hecha según lo recomendado)
  • ejecutando launchctl setenv PATH $PATH desde la línea de comandos, se suponía que esto debía actualizar el PATH para las aplicaciones GUI, al menos para la sesión actual. Adivina qué, ningún cambio.

Parece que PATH siempre es PATH=/usr/bin:/bin:/usr/sbin:/sbin para las aplicaciones GUI.

    
pregunta sorin 11.09.2012 - 17:23

4 respuestas

8

Con Mountain Lion /etc/launchd.conf es donde debe establecer la ruta de las aplicaciones GUI. Recuerda que no es un archivo de script; solo admite los comandos launchctl , por lo que debería escribir algo como:

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

Tenga en cuenta también que no admite sustituciones de variables de entorno de shell (como $PATH ), por lo que tendrá que establecer todas las rutas que desee incluir. Es una buena idea mantener las rutas originales que has mencionado ( /usr/bin:/bin:/usr/sbin:/sbin ).

Tendrás que reiniciar después de cambiar (o crear) el archivo para que los cambios surtan efecto.

    
respondido por el João Campos 04.12.2012 - 15:18
3

Funciona si llama a la aplicación GUI desde la Terminal:

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

No es realmente agradable ni cómodo, pero hace el trabajo si es necesario.

    
respondido por el nohillside 11.09.2012 - 22:02
2

Preparé otra solución, inspirada en patrix one aquí , que espero sea un poco menos dolorosa. Abra Automator , seleccione una aplicación como destino y elija Execute Shell script (o como se llame, en alemán es "Shell-Skript ausführen" como se puede ver arriba) como acción. En el script, simplemente escriba

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

Luego, guarda todo lo que quieras, y si necesitas ejecutar YourApplicationHere , abre la "aplicación de automatización" creada.

Probé esto con Terminal como YourApplicationHere , y vi con launchctl export que FOO de hecho estaba configurado en barra . Espero que funcione para otros también.

Finalmente, si usa este solución para sus variables de entorno, en lugar de escribir launchctl stuff en el script de shell, puede llamar a /Users/Shared/conflaunchd.sh (que debe completar primero, junto con el archivo que describe las variables).

    
respondido por el Percival Ulysses 01.10.2012 - 12:04
-1

Supuestamente, launchctl proporciona PATH a las aplicaciones GUI. Para establecer la ruta de acceso a la ruta de shell, agregue lo siguiente a su archivo rc de shell después de configurar su ruta:

launchctl setenv PATH $PATH
    
respondido por el ismail 11.09.2012 - 22:25

Lea otras preguntas en las etiquetas