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

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

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

Sin embargo, si simplemente quiero hacer clic en el icono del 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 se podían configurar variables de entorno para aplicaciones GUI simplemente agregándolas a /etc/launchd.conf. Este archivo no parece existir en Mavericks. ¿Cómo puedo configurar una variable de entorno global que funcione para aplicaciones GUI en Mavericks?

Respuesta1

/etc/launchd.confnunca ha existido de forma predeterminada, pero todavía funciona en 10.9.

  1. Ejecutar por ejemplo sudo nano /etc/launchd.conf.
  2. Añade una línea como setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Aunque no sé qué JAVA_HOMEdebería configurarse realmente).
  3. Reinicie o ejecute launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confy reinicie procesos.

launchctl exportimprime las variables exportadas por el proceso de inicio del usuario e sudo launchctl exportimprime las variables exportadas por el proceso de inicio 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

(Usé /Users/lauri/binen lugar de ~/binporque ~/binsería /var/root/binpara programas que se ejecutan como root).

Respuesta2

Launchd.conf ya no funciona ni se puede utilizar desde Mac OS 10.10.

La forma correcta de lograr esto ahora es a través de scripts de LaunchAgent que se cargan en el momento del inicio. Dado que estos scripts son tremendamente tediosos (opinión personal :), prefiero usar .bash_profile y crear/actualizar estos scripts automáticamente.

Pruebe esta respuesta SO para obtener una forma más sencilla de lograrlo desde su .bash_profile. Espero que esto te ahorre las pocas horas que pasé tratando de resolverlo (nuevamente) para mi nuevo Mac M2.

https://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite

información relacionada