¿Cómo puedo establecer variables de entorno para aplicaciones GUI en OS X Mavericks?

19

He estado luchando para que una aplicación se ejecute en OS X Mavericks. Finalmente pude lograr que se ejecute al profundizar en el paquete .app y ejecutar el script de shell directamente. Parece que JAVA_HOME necesitaba ser configurado. Así que lo configuré en mi .profile en el shell, y todo funciona bien.

Sin embargo, si quiero simplemente hacer clic en el icono en el dock, no se ejecutará. Supongo que esto se debe a que JAVA_HOME no está configurado globalmente. Como no estoy ejecutando la aplicación directamente desde el shell, OS X no sabe qué es JAVA_HOME. Simplemente sigue buscando.

En versiones anteriores de OS X, parece que las variables de entorno se pueden configurar para aplicaciones GUI simplemente agregándolas a /etc/launchd.conf. Este archivo no parece existir en Mavericks. ¿Cómo puedo establecer una variable de entorno global que funcione para aplicaciones GUI en Mavericks?

usuario1015721
fuente

Respuestas:

24

/etc/launchd.conf nunca ha existido por defecto, pero aún funciona en 10.9.

  1. Ejecutar por ejemplo sudo nano /etc/launchd.conf.
  2. Agrega una línea como setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Sin JAVA_HOMEembargo , no sé qué debería configurarse realmente).
  3. Reinicie o ejecute launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confy vuelva a iniciar procesos.

launchctl exportimprime las variables exportadas por el proceso de lanzamiento de usuario e sudo launchctl exportimprime las variables exportadas por el proceso de lanzamiento de raíz.

Este método también se puede utilizar para establecer una ruta predeterminada. Por ejemplo, he agregado esta línea a /etc/launchd.conf:

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

(Utilicé en /Users/lauri/binlugar de ~/binporque ~/binsería /var/root/binpara programas que se ejecutan como root).

Lri
fuente
55
+1 para explicar cómo obtener cambios /etc/launchd.confsin reiniciar el sistema. Para configurar el PATH se /etc/paths.d/deben usar archivos de variables de entorno .
Timo Meinen
44
En realidad, /etc/launchd.confya no funciona después de las 10.10
OleGG