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 dentro de una aplicación de interfaz gráfica de usuario 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 binario hecho como se recomienda)launchctl setenv PATH $PATH
desde la línea de comando, se suponía que esto actualizaría la RUTA para las aplicaciones GUI, al menos para la sesión actual. Adivina qué, sin cambios.Parece que PATH siempre es PATH=/usr/bin:/bin:/usr/sbin:/sbin
para aplicaciones GUI.
Con Mountain Lion /etc/launchd.conf
es donde debe establecer la ruta de las aplicaciones GUI. Recuerde que no es un archivo de script; solo admite launchctl
comandos, por lo que debe 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 deberá establecer cada ruta que desee incluir. Es una buena idea mantener las rutas originales que mencionaste ( /usr/bin:/bin:/usr/sbin:/sbin
).
Deberá reiniciar después de cambiar (o crear) el archivo para que los cambios surtan efecto.
-bash: setenv: command not found
setenv
es un launchctl
comando, así que lo usa como launchctl setenv
.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.
Preparé otra solución, inspirada en patrix one here , que con suerte es un poco menos dolorosa. Abra Automator
, seleccione una aplicación como objetivo 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 guarde todo donde desee, y si necesita ejecutar YourApplicationHere , abra la "aplicación de automatización" creada en su lugar.
Probé esto con Terminal
YourApplicationHere , y vi que FOO estaba realmente configurado para bloquear . Espero que funcione para otros también.launchctl export
Finalmente, si usa esta solución para sus variables de entorno, en lugar de escribir las launchctl
cosas en el script de shell, puede simplemente llamar /Users/Shared/conflaunchd.sh
(que debe inventar primero, junto con el archivo que describe las variables).
Supuestamente, launchctl
proporciona PATH
a las aplicaciones GUI. Para establecer la ruta a la ruta de shell, agregue lo siguiente a su archivo rc de shell después de configurar su ruta:
launchctl setenv PATH $PATH
bmike
sorín
bmike
flori