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

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

Ich hatte Probleme, eine App unter OS X Mavericks zum Laufen zu bringen. Endlich gelang es mir, sie zum Laufen zu bringen, indem ich in das .app-Bundle eindrang und das Shell-Skript direkt ausführte. Es scheint, dass JAVA_HOME festgelegt werden musste. Also legte ich es in meinem .profile in der Shell fest und alles funktionierte einwandfrei.

Wenn ich jedoch einfach auf das Symbol im Dock klicke, wird es nicht ausgeführt. Ich vermute, das liegt daran, dass JAVA_HOME nicht global festgelegt ist. Da ich die App nicht direkt von der Shell aus ausführe, weiß OS X nicht, was JAVA_HOME ist. Es sucht einfach weiter.

In früheren Versionen von OS X konnten Umgebungsvariablen für GUI-Apps anscheinend 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?

Antwort1

/etc/launchd.confhat es standardmäßig nie gegeben, funktioniert aber in 10.9 immer noch.

  1. Führen Sie beispielsweise aus sudo nano /etc/launchd.conf.
  2. Fügen Sie eine Zeile wie hinzu setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. (Ich weiß allerdings nicht, JAVA_HOMEauf was es eigentlich eingestellt werden soll.)
  3. Starten Sie die Prozesse entweder neu oder führen Sie sie aus launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confund starten Sie sie neu.

launchctl exportdruckt vom Benutzer-Launchd-Prozess exportierte Variablen und sudo launchctl exportdruckt vom Root-Launchd-Prozess exportierte Variablen.

Mit dieser Methode kann auch ein Standardpfad festgelegt werden. Ich habe beispielsweise diese Zeile hinzugefügt /etc/launchd.conf:

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

(Ich habe /Users/lauri/binanstelle von verwendet, ~/binda dies für Programme ~/bingilt /var/root/bin, die als Root ausgeführt werden.)

Antwort2

Launchd.conf funktioniert/ist seit Mac OS 10.10 nicht mehr verwendbar.

Der richtige Weg, dies jetzt zu erreichen, sind LaunchAgent-Skripte, die beim Start geladen werden. Da diese Skripte furchtbar mühsam sind (persönliche Meinung :), bevorzuge ich die Verwendung von .bash_profile und das automatische Erstellen/Aktualisieren dieser Skripte.

Versuchen Sie diese SO-Antwort, um dies einfacher von Ihrem .bash_profile aus zu erreichen. Hoffentlich erspart Ihnen dies die paar Stunden, die ich damit verbracht habe, es (wieder) für meinen neuen Mac M2 herauszufinden

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

verwandte Informationen