Wie kann ich Umgebungsvariablen für GUI-Apps in OS X Mavericks festlegen?

19

Ich hatte Mühe, eine App für OS X Mavericks zu finden. Ich konnte es endlich zum Laufen bringen, indem ich das .app-Bundle durchforstete und das Shell-Skript direkt ausführte. Es scheint, dass JAVA_HOME gesetzt werden musste. Also habe ich es in mein .profile in der Shell gesetzt und alles funktioniert einwandfrei.

Wenn ich jedoch einfach auf das Symbol im Dock klicken möchte, wird es nicht ausgeführt. Ich vermute, dass dies daran liegt, dass JAVA_HOME nicht global festgelegt ist. Da ich die App nicht direkt von der Shell aus starte, weiß OS X nicht, was JAVA_HOME ist. Es schaut einfach weiter.

In früheren Versionen von OS X konnten anscheinend Umgebungsvariablen für GUI-Apps festgelegt werden, indem sie einfach zu /etc/launchd.conf hinzugefügt wurden. Diese Datei scheint in Mavericks nicht zu existieren. Wie kann ich eine globale Umgebungsvariable festlegen, die für GUI-Apps in Mavericks funktioniert?

user1015721
quelle

Antworten:

24

/etc/launchd.conf hat noch nie existiert, aber es funktioniert immer noch in 10.9.

  1. Führen Sie zum Beispiel sudo nano /etc/launchd.conf.
  2. Fügen Sie eine Zeile wie setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Ich weiß allerdings nicht, auf was JAVA_HOMEgenau eingestellt werden soll.)
  3. launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confStarten Sie die Prozesse neu oder führen Sie sie aus und starten Sie sie neu.

launchctl exportdruckt Variablen, die vom startenden Benutzerprozess exportiert wurden, und sudo launchctl exportdruckt Variablen, die vom startenden Stammprozess exportiert wurden.

Diese Methode kann auch verwendet werden, um einen Standardpfad festzulegen. Zum Beispiel habe ich diese Zeile hinzugefügt zu /etc/launchd.conf:

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

(I verwendet /Users/lauri/binstatt , ~/binda ~/binwäre /var/root/binfür Programme als root ausführen.)

Lri
quelle
5
+1, um zu erklären, wie Änderungen vorgenommen werden können, /etc/launchd.confohne das System neu zu starten. Für die Konfiguration der PATH-Umgebung sollten Variablendateien in /etc/paths.d/verwendet werden.
Timo Meinen
4
Funktioniert /etc/launchd.confnach 10.10
OleGG