Как я могу установить переменные среды для приложений GUI в Mavericks OS X?

19

Я изо всех сил пытался заставить приложение работать в OS X Mavericks. Я наконец смог запустить его, свернув пакет .app и запустив скрипт оболочки напрямую. Похоже, JAVA_HOME нужно было установить. Поэтому я установил его в моем .profile в оболочке, и все работает нормально.

Однако, если я хочу просто щелкнуть значок в доке, он не запустится. Я предполагаю, что это потому, что JAVA_HOME не установлен глобально. Поскольку я не запускаю приложение непосредственно из оболочки, OS X не знает, что такое JAVA_HOME. Это просто продолжает смотреть.

В предыдущих версиях OS X кажется, что переменные окружения могут быть установлены для приложений с графическим интерфейсом, просто добавляя их в /etc/launchd.conf. Этот файл не существует в Mavericks. Как я могу установить глобальную переменную среды, которая будет работать для приложений с графическим интерфейсом в Mavericks?

user1015721
источник

Ответы:

24

/etc/launchd.conf никогда не существовал по умолчанию, но он все еще работает в 10.9.

  1. Запустите, например sudo nano /etc/launchd.conf.
  2. Добавьте строку как setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Я не знаю, что на JAVA_HOMEсамом деле должно быть установлено, хотя.)
  3. Либо перезапустите, либо запустите launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confи перезапустите процессы.

launchctl exportпечатает переменные, экспортированные процессом launchd пользователя, и sudo launchctl exportпечатает переменные, экспортированные процессом launchd root.

Этот метод также можно использовать для установки пути по умолчанию. Например, я добавил эту строку в /etc/launchd.conf:

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

(Я использовал /Users/lauri/binвместо, ~/binпотому что ~/binбыло бы /var/root/binдля программ, запускаемых от имени пользователя root.)

LRI
источник
5
+1 за объяснение того, как внести изменения /etc/launchd.confбез перезагрузки системы. Для настройки переменных среды PATH /etc/paths.d/следует использовать файлы переменных .
Тимо Майнен
4
На самом деле, /etc/launchd.confбольше не работает после 10.10
OleGG