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

Intenté todos los methods 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 dentro de una aplicación gui como Eclipse o IntelliJ IDEA.

#!/bin/bash set|grep PATH 

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 (plist binary hecho como se recomienda)
  • ejecutando launchctl setenv PATH $PATH desde la command-line, se suponía que esto debía actualizar las aplicaciones PATH para GUI, al less para la session actual. Adivina qué, no hay cambio.

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

  • ¿Por qué no puedo chmod para hacer un file ejecutable sin sudo?
  • ¿En qué file Terminal.app almacena sus windows?
  • En OSX Yosemite, ¿por qué puedo configurar muchas variables de entorno para aplicaciones GUI, pero no puedo establecer la variable específica PATH?
  • ¿Dónde están las bibliotecas de Anaconda para PYTHONPATH?
  • ¿Cuál es la forma completa y autoritativa en la que Mac OSX 10.9 y posterior construye su RUTA?
  • Establecer variables de entorno de todo el sistema en El Capitán
  • Paradoja en la comprensión del "order de arranque" de los progtwigs dados por $ PATH
  • La ruta de escape en AppleScript agrega leading /
  • 4 Solutions collect form web for “¿Cómo cambiar la variable de entorno PATH a OS X 10.8 Mountain Lion que será visible para las aplicaciones GUI?”

    Con Mountain Lion /etc/launchd.conf es donde debe establecer la ruta de las aplicaciones GUI. Recuerde que no es un file de script; solo es compatible launchctl commands launchctl , por lo que debe escribir algo como:

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

    Tenga en count también que no es compatible con sustituciones de variable de entorno de shell (como $PATH ) por lo que tendrá que establecer cada ruta que desee include. Es una buena idea mantener las routes originales que mencionaste ( /usr/bin:/bin:/usr/sbin:/sbin ).

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

    Funciona si llamas 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 

    enter image description here

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

    Preparé otra solución, inspirada en la de Patrix , que espero que sea un poco less dolorosa. Abra Automator , select 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, solo escribe

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

    A continuación, guarde todo en el lugar que desee, y si necesita ejecutar YourApplicationHere , abra la "aplicación automática " creada.

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

    Finalmente, si utiliza esta solución para las variables de entorno, en lugar de escribir las cosas de launchctl en el script de shell, puede simplemente llamar a /Users/Shanetworking/conflaunchd.sh (que debe deviseiar primero, junto con el file que describe el variables).

    Supuestamente, launchctl proporciona las aplicaciones PATH to GUI. Para establecer la ruta a la de la ruta del shell, agregue lo siguiente a su file shell rc luego de establecer su ruta:

     launchctl setenv PATH $PATH 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).