Ich habe alle Methoden ausprobiert, von denen ich gehört habe, um Umgebungsvariablen unter OS X 10.8 festzulegen, aber keine davon scheint zu funktionieren.
Führen Sie zum Testen ein Bash-Skript in einer GUI-Anwendung wie Eclipse oder IntelliJ IDEA aus.
#!/bin/bash
set|grep PATH
Dinge, die ich getestet habe und die auch nach dem Neustart nicht funktionieren :
/etc/paths
und/etc/paths.d/something
/etc/launchd.conf
~/.bash_profile
~/.MacOSX/environment.plist
(Binärpliste wie empfohlen)- Über
launchctl setenv PATH $PATH
die Befehlszeile sollte der PATH für GUI-Apps zumindest für die aktuelle Sitzung aktualisiert werden. Ratet mal, keine Veränderung.
Es scheint, dass PATH immer PATH=/usr/bin:/bin:/usr/sbin:/sbin
für GUI-Apps ist.
macos
path
environment-variables
Sorin
quelle
quelle
Antworten:
Bei Mountain Lion
/etc/launchd.conf
sollten Sie den Pfad für die GUI-Anwendungen festlegen. Denken Sie daran, es ist keine Skriptdatei. Es werden nurlaunchctl
Befehle unterstützt , daher sollten Sie Folgendes schreiben:Beachten Sie auch, dass es keine Ersetzungen von Shell-Umgebungsvariablen (wie
$PATH
) unterstützt, sodass Sie jeden Pfad festlegen müssen, den Sie einschließen möchten. Es ist eine gute Idee, die ursprünglichen Pfade, die Sie erwähnt haben, beizubehalten (/usr/bin:/bin:/usr/sbin:/sbin
).Sie müssen nach dem Ändern (oder Erstellen) der Datei einen Neustart durchführen, damit die Änderungen wirksam werden.
quelle
-bash: setenv: command not found
setenv
ist einlaunchctl
Befehl, also benutzt man ihn gernelaunchctl setenv
.Es funktioniert, wenn Sie die GUI-App vom Terminal aus aufrufen:
Nicht wirklich schön oder bequem, aber es macht den Job, wenn nötig.
quelle
Ich habe mir eine andere Lösung ausgedacht , inspiriert von Patrix , die hoffentlich etwas weniger schmerzhaft ist. Öffnen Sie
Automator
, wählen Sie eine Anwendung als Ziel aus und wählen SieExecute Shell script
(oder wie auch immer es heißt, auf Deutsch heißt es "Shell-Skript ausführen", wie oben zu sehen ist) als Aktion. Geben Sie im Skript einfach Folgendes einSpeichern Sie dann das Ganze, wo immer Sie möchten, und öffnen Sie stattdessen die erstellte "Automator-Anwendung" , wenn Sie YourApplicationHere ausführen müssen .
Ich habe dies mit
Terminal
als YourApplicationHere getestet und gesehen,launchctl export
dass FOO in der Tat auf Bar gesetzt war . Ich hoffe, dass es auch für andere funktioniert.Wenn Sie diese Lösung für Ihre Umgebungsvariablen verwenden, können Sie statt der Eingabe
launchctl
im Shell-Skript einfach aufrufen/Users/Shared/conflaunchd.sh
(was Sie zuerst zusammen mit der Datei, die die Variablen beschreibt, neu zusammenstellen müssen).quelle
Angeblich
launchctl
bietetPATH
GUI Apps an. Um den Pfad des Shell-Pfads festzulegen, fügen Sie Ihrer Shell-RC-Datei Folgendes hinzu, nachdem Sie den Pfad festgelegt haben:quelle