544 Stimmen

Setzen von Umgebungsvariablen unter Mac OS X Lion

Wenn jemand sagt: "Bearbeiten Sie Ihre .plist-Datei" oder "Ihr .profile" oder ".bash_profile" usw., verwirrt mich das nur. Ich habe keine Ahnung, wo diese Dateien sind, wie ich sie erstellen kann, wenn ich das tun muss, usw., und auch, warum es so viele verschiedene zu geben scheint (warum? Tun sie unterschiedliche Dinge?)

Könnte also bitte jemand einem früheren Windows-Benutzer (der sich verzweifelt mit der angenehmen, wenn auch anfangs etwas verwirrenden OS X-Welt vertraut machen möchte) sehr geduldig erklären, wie man dies Schritt für Schritt macht?

Ich brauche die Variablen sowohl für GUI-Anwendungen als auch für Befehlszeilenanwendungen, und im Moment ist es für ein Ameisenskript, das die Variablen benötigt, aber es wird höchstwahrscheinlich auch andere Bedürfnisse geben.

Bitte beachten Sie, dass ich auch Lion habe, da viele der Antworten, die Sie beim Googeln finden, für Lion veraltet zu sein scheinen...

Beachten Sie auch, dass ich praktisch keine Erfahrung im Umgang mit dem Terminal habe. Ich bin bereit, zu lernen, aber bitte erklären Sie für einen Anfänger ...

5voto

JaakL Punkte 3821

Ich hatte ein Problem mit Eclipse (gestartet als GUI, nicht aus einem Skript) auf Maverics, dass es den benutzerdefinierten PATH nicht übernommen hat. Ich habe alle oben genannten Methoden ausprobiert, ohne Erfolg. Schließlich habe ich die einfachste Lösung gefunden, die auf den Hinweisen von aquí :

  1. Ir a /Anwendungen/eclipse/Eclipse.app/Inhalt Ordner

  2. Bearbeiten Sie die Datei Info.plist mit einem Texteditor (oder XCode) und fügen Sie Folgendes hinzu LSEnvironment Wörterbuch für Umgebungsvariable mit vollständiger Pfad . Beachten Sie, dass dies auch /usr/bin usw. umfasst:

    <dict>
      <key>LSEnvironment</key>
      <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string>
      </dict>
      <key>CFBundleDisplayName</key>
      <string>Eclipse</string>
      ...
  3. Parameter für App neu laden mit

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
  4. Eclipse neu starten

5voto

Sumit Pokhrel Punkte 1667

Lassen Sie mich das an meinem persönlichen Beispiel erläutern, das sehr redundant ist.

  1. Vergewissern Sie sich zunächst nach der Installation von JDK, dass es installiert ist. enter image description here

  2. Manchmal richtet macOS oder Linux im Gegensatz zu Windows automatisch Umgebungsvariablen für Sie ein. Aber das ist nicht immer der Fall. Prüfen wir es also. enter image description here Die Zeile unmittelbar nach echo $JAVA_HOME würde leer sein, wenn die Umgebungsvariable nicht gesetzt ist. In Ihrem Fall muss sie leer sein.

  3. Jetzt müssen wir überprüfen, ob wir eine bash_profile-Datei haben. enter image description here Sie haben gesehen, dass wir in meinem Fall bereits bash_profile haben. Wenn nicht, müssen wir eine bash_profile Datei erstellen.

  4. Erstellen Sie eine bash_profile-Datei. enter image description here

  5. Prüfen Sie erneut, ob die Datei bash_profile vorhanden ist. enter image description here

  6. Öffnen wir nun die Datei bash_profile. macOS öffnet sie mit seinem Standardprogramm TextEdit. enter image description here

  7. Dies ist die Datei, in der die Umgebungsvariablen gespeichert werden. Wenn Sie eine neue bash_profile-Datei geöffnet haben, muss diese leer sein. In meinem Fall war sie bereits auf die Programmiersprache Python und die Anaconda-Distribution eingestellt. Jetzt muss ich die Umgebungsvariable für Java hinzufügen, was nur die erste Zeile bedeutet. Sie müssen die erste Zeile VERBATIM eintippen. JUST the first line. Speichern und schließen Sie das TextEdit. Schließen Sie dann das Terminal. enter image description here

  8. Öffnen Sie das Terminal erneut. Prüfen wir, ob die Umgebungsvariable eingerichtet ist. enter image description here

4voto

Rob in Katy Punkte 41

Ich habe den Weg des Idioten gewählt. Ich fügte Folgendes am Ende von /etc/profile hinzu

for environment in `find /etc/environments.d -type f`
do
     . $environment
done

einen Ordner /etc/environments erstellt eine Datei mit dem Namen "oracle" oder "whatever" und fügte ihr die Dinge hinzu, die ich global einstellen musste.

/etc$ cat /etc/environments.d/Oracle

export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin

2voto

Jerry Chong Punkte 5482

Es wird empfohlen zu prüfen Standard-Terminal-Shell vor dem Setzen von Umgebungsvariablen über die folgenden Befehle:

$ echo $SHELL
/bin/zsh

Wenn Ihr Standardterminal /bin/zsh (Z Shell) wie in meinem Fall (ich persönlich bevorzuge Z Shell), dann sollten Sie diese Umgebungsvariablen in ~/.zshenv Datei mit folgendem Inhalt (In diesem Beispiel ist die Einstellung JAVA_HOME Umgebungsvariable, aber das gilt auch für andere):

export JAVA_HOME="$(/usr/libexec/java_home)"

Auch für alle anderen, oben nicht genannten Terminaltypen sollten Sie die Umgebungsvariable in der entsprechenden Terminal-Env-Datei setzen.

1voto

Photovore Punkte 135

Weitere Einzelheiten, die vielleicht für jemanden hilfreich sein könnten:

Aufgrund meiner eigenen Erkundungen weiß ich jetzt, wie man Umgebungsvariablen auf 7 von 8 verschiedenen Wegen setzt. Ich habe versucht, eine Umgebungsvariable für eine Anwendung zu setzen, die ich unter Xcode entwickle. Ich habe "Tracer"-Umgebungsvariablen mit diesen verschiedenen Methoden gesetzt, um herauszufinden, welche davon in den Bereich meiner Anwendung gelangen. Aus der unten, können Sie sehen, dass die Bearbeitung der "Schema" in Xcode, um Argumente hinzuzufügen funktioniert, sowie "putenv". Was hat es nicht in diesem Bereich gesetzt: ~/.MACOS/environment.plist, app-spezifische plist, .profile, und das Hinzufügen einer Build-Phase, um ein benutzerdefiniertes Skript auszuführen (ich habe in Xcode [zumindest] eine andere Möglichkeit gefunden, eine zu setzen, aber ich habe vergessen, wie ich den Tracer genannt habe und kann ihn jetzt nicht finden; vielleicht ist er auf einem anderen Rechner....)

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

... andererseits, wenn ich in Terminal gehe und "set" sage, scheint es, dass die einzige, die es bekommt, die aus .profile ist (ich hätte gedacht, dass es auch environment.plist abholen würde, und ich bin sicher, dass ich einmal eine zweite Tracer-Envar in Terminal gesehen habe, also ist seitdem wahrscheinlich etwas schief gelaufen. Langer Tag....)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X