Jak ustawić zmienne środowiskowe dla aplikacji GUI w OS X Mavericks?

19

Mam problemy z uruchomieniem aplikacji w systemie OS X Mavericks. W końcu udało mi się go uruchomić, wiercąc w pakiecie .app i uruchamiając bezpośrednio skrypt powłoki. Wygląda na to, że JAVA_HOME musiał zostać ustawiony. Więc ustawiłem go w moim .profile w powłoce i wszystko działa dobrze.

Jeśli jednak chcę po prostu kliknąć ikonę w doku, nie będzie działać. Domyślam się, że dzieje się tak, ponieważ JAVA_HOME nie jest ustawiony globalnie. Ponieważ nie uruchamiam aplikacji bezpośrednio z powłoki, OS X nie wie, co to jest JAVA_HOME. Po prostu dalej szuka.

W poprzednich wersjach OS X wydaje się, że zmienne środowiskowe można ustawiać dla aplikacji GUI, po prostu dodając je do /etc/launchd.conf. Wygląda na to, że ten plik nie istnieje w Mavericks. Jak ustawić globalną zmienną środowiskową, która będzie działać dla aplikacji GUI w Mavericks?

użytkownik1015721
źródło

Odpowiedzi:

24

/etc/launchd.conf nigdy nie istniał domyślnie, ale nadal działa w wersji 10.9.

  1. Uruchom na przykład sudo nano /etc/launchd.conf.
  2. Dodaj linię jak setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Nie wiem jednak, co JAVA_HOMEpowinno być ustawione).
  3. Uruchom ponownie lub uruchom launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confi uruchom ponownie procesy.

launchctl exportdrukuje zmienne eksportowane przez proces uruchamiany przez użytkownika i sudo launchctl exportdrukuje zmienne eksportowane przez proces uruchamiany przez użytkownika root.

Tej metody można również użyć do ustawienia domyślnej ścieżki. Na przykład dodałem tę linię do /etc/launchd.conf:

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

(Użyłem /Users/lauri/binzamiast ~/binponieważ ~/binbyłoby /var/root/bindla programów uruchamianych jako root.)

Lri
źródło
5
+1 za wyjaśnienie, jak wprowadzić zmiany /etc/launchd.confbez ponownego uruchamiania systemu. Do konfiguracji PATH /etc/paths.d/należy użyć plików zmiennych środowiskowych .
Timo Meinen
4
Właściwie /etc/launchd.confto już nie działa po 10.10
OleGG