wake-up-neo.net

Mac OS X Lion erkennt environment.plist nicht mehr?

Lion wurde gerade installiert, und meine PATH-Umgebungsvariable wird nicht mehr von ~/.MacOSX/environment.plist festgelegt. Hat sich etwas verändert? Ich kann anscheinend keine Informationen dazu finden oder wie man das Problem beheben kann. Irgendwelche Ideen?

Hier ist der Inhalt des PLIST:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
29
Michael Irwin

Verwenden Sie stattdessen ~/.launchd.conf (siehe man launchctl).

Siehe diese Antwort für Details.

14
LaC

Ich bin heute auf dieselbe Ausgabe gestoßen. Ich rief den Apple Support an und nachdem ich zu einem Senior Advisor und dann zu ihrem Vorgesetzten eskaliert worden war, wurde mir gesagt, dass sie environment.plist nicht mehr unterstützen und dass es keine offiziell unterstützte Methode zur Definition von Umgebungsvariablen in Mac OS 10.7 gibt.

15
sworisbreathing

Unabhängig davon, ob Apple diesen Mechanismus offiziell unterstützt oder nicht, ist die aktuelle Tech Note Technical Q & A QA1067 immer noch genau. Ein wichtiger Nachteil ist jedoch nicht vorhanden: Die Eigenschaftsliste muss im Binärformat vorliegen. Wenn Xcode 4 zum Erstellen neuer Eigenschaftslisten verwendet wird, werden Dateien im Textformat ausgegeben (unabhängig von dem im Dateiinspektor angegebenen Typ). Sie müssen entweder die gespeicherte Datei mit 'plutil' konvertieren: 

plutil -convert binary1 environment.plist

oder verwenden Sie "Standardwerte", um eine neue Vorlagendatei zu erstellen, die Sie in Xcode bearbeiten können (was beim Speichern das ursprüngliche Binärformat berücksichtigt):

defaults write defaults write $HOME/.MacOSX/environment Root "1"
10
Shawn

Machen Sie es wie ein Brauen und erstellen Sie einen Symlink in/usr/local/bin /. Funktioniert perfekt für mich und ist IMO eine eher Unix-ähnliche Lösung, bei der alles eine Datei ist.

1
Programmer

Ich habe mich gerade von etwas Ähnlichem in Snow Leopard verbrannt und dann herausgefunden, was das Problem war.

Ich war mache:

$ cd
$ defaults write .MacOSX/environment FOO bar

... aber es stellt sich heraus, dass dies anders ist als (in meinem Fall):

$ cd
$ defaults write /Users/ljnelson/.MacOSX/environment FOO bar

Das heißt, der "Pfad" (es ist nicht wirklich ein Pfad) zu Ihrer Domain muss der vollständige Dateipfad zu Ihrer $HOME/.MacOSX/environment.plist -Datei sein (abzüglich des .plist-Suffix). Alles andere schreibt offenbar Variablen in eine andere Domäne (keine Ahnung, wo sie abgelegt wurden).

Fazit: immer defaults write /full/path/to/your/.MacOSX/environment VARNAME value machen; Verwenden Sie für das erste Argument des Unterbefehls write überhaupt keine Verknüpfungen.

1
Laird Nelson

Komisch, denn hier funktioniert es einwandfrei. Ich musste eine JRI-Umgebung einrichten, um von einer Java-Anwendung aus auf R-Interna zuzugreifen. Das Aktualisieren des .profile war nicht ausreichend, damit NetBeans alle Env-Variablen abfangen konnte.

Das Erstellen der Datei environment.plist hat den Trick ausgeführt.

Als Referenz dient der Inhalt der Datei:

Malessere:~ xxxxx$ cat .MacOSX/environment.plist 
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
      <key>DYLD_LIBRARY_PATH</key>
      <string>/Users/xxxxx/lib/jri-2.13</string>
      <key>R_HOME</key>
      <string>/Library/Frameworks/R.framework/Resources</string>
   </dict>
   </plist>
1
ostefano

Ich habe vor kurzem die von Xcode Run Script Phase verwendeten Tools zusammengepackt und in $ HOME/bin abgelegt. Die Umgebungsvariable PATH meiner bash Shell enthielt dies, also ging ich davon aus, dass auch Xcode dies tun würde.

Es hat nie funktioniert und ich habe Probleme wie das hier gefunden. 

Ich habe die PATH-Variable aus dem von Xcode aufgerufenen Skript (echo $ PATH) gedruckt, um zu sehen, worauf die PATH-Variable eingestellt wurde.

Glücklicherweise wurde einer dieser Pfade, /Applications/Xcode.app/Contents/Developer/usr/local/bin, nicht verwendet.

Hier war meine Lösung. Ich habe aus dem obigen Verzeichnis einen symbolischen Link zu $ ​​HOME/bin erstellt.

Navigieren Sie zu /Applications/Xcode.app/Contents/Developer/usr/local und führen Sie Sudo ln -s $ HOME/bin bin aus.

Meine Tools standen nun für die Xcode-Plattform zur Verfügung.

0
lazarus

[[Ich kopiere diese Antwort von mir hier hinein, weil sie vielleicht nur jemandem nützlich sein kann:]]

Aufgrund meiner eigenen Erkundungen weiß ich jetzt, wie ich Umgebungsvariablen auf 7 von 8 verschiedenen Arten einstellen kann. Ich habe versucht, eine Envar zu einer Anwendung zu bringen, die ich unter Xcode entwickle. Ich setze "Tracer" -Envars mit diesen verschiedenen Methoden, um mir mitzuteilen, welche davon in den Anwendungsbereich meiner Anwendung kommen. Im Folgenden können Sie sehen, dass das Bearbeiten des "Schemas" in Xcode zum Hinzufügen von Argumenten ebenso wie "putenv" funktioniert. Was hat es nicht in diesem Bereich festgelegt: ~/.MACOS/environment.plist, app-spezifische plist, .profile und Hinzufügen einer Erstellungsphase, um ein benutzerdefiniertes Skript auszuführen (ich habe einen anderen Weg in Xcode [zumindest] gesetzt) aber ich habe vergessen, was ich den Tracer nannte und kann ihn jetzt nicht finden; vielleicht ist er auf einer anderen Maschine ...)

GPU_DUMP_DEVICE_KERNEL ist 3

GPU_DUMP_TRK_ENVPLIST ist (null)

GPU_DUMP_TRK_APPPLIST ist (null)

GPU_DUMP_TRK_DOTPROFILE ist (null)

GPU_DUMP_TRK_RUNSCRIPT ist (null)

GPU_DUMP_TRK_SCHARGS ist 1

GPU_DUMP_TRK_PUTENV ist 1

... auf der anderen Seite, wenn ich ins Terminal gehe und "set" sage, scheint es das einzige zu sein, das es von .profile ist (ich hätte gedacht, es würde auch environment.plist abholen, und ich bin Ich bin sicher, dass, sobald ich habe einen zweiten Tracer-Envar in Terminal gesehen habe, etwas wahrscheinlich seitdem nicht mehr funktioniert; langer Tag ....)

0
Photovore

Mac OS X (10.7.4 und höher) unterstützt es standardmäßig nicht mehr. Siehe http://support.Apple.com/kb/TS4267

0
mac joost

Sie können Ihren ~/.MacOSX/environment.plist mit diesem Beispiel von $PATH bearbeiten:

defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"

Dadurch wird Ihr ~/.MacOSX/environment.plist neu geschrieben.

oder editiere diese Datei:

/etc/paths

um die Reihenfolge der Systemvariablen zu ändern.

0
gylow