Wie setze ich Umgebungsvariablen unter OS X?

69

Ich habe immer Schwierigkeiten, die Umgebungsvariablen in OS X wie JAVA_HOME, M2_HOMEoder einzustellen PATH. Wie stelle ich diese auf OS X Mavericks ein?

Ich habe ein paar Nachforschungen angestellt, aber die Antworten, die ich gefunden habe, haben mir noch nicht wirklich geholfen:

  1. export JAVA_HOME=/... (Es scheint jedoch, dass die Änderungen nur für eine Terminalsitzung vorübergehend sind.)
  2. setenv JAVA_HOME=/... (Aber Befehl nicht gefunden.)
  3. Öffne .profileund schreibe die Variablen hinein, um die Änderungen dauerhaft zu machen ( .profileexistiert nicht).
  4. Öffne .bash_profileund schreibe die Variablen hinein, um die Änderungen dauerhaft zu machen ( .bash_profileexistiert nicht).
  5. vi ~/.bash_profile(Eine ziemliche Herausforderung für jemanden, der es nicht weiß vi.)
  6. Erstellen Sie Ihre eigene enrivonment.plistDatei.

Kann mich bitte jemand durch die Schritte führen, damit dies unter OS X Mavericks funktioniert, vorausgesetzt, es ist kein Unix-Know-how vorhanden?

Akcasoy
quelle
1
Unix (und jedes andere Betriebssystem) kann für neue Benutzer schwierig sein, sodass ich Ihre Frustration verstehen kann. Trotzdem ist die geschriebene Frage ziemlich weit gefasst und liefert nicht die Antworten, nach denen Sie suchen. Können Sie es bitte umschreiben, um sich auf das Problem zu konzentrieren, das Sie tatsächlich haben (wie "Wie setze ich JAVA_HOME und PATH auf Mavericks"), um sicherzustellen, dass Sie gute Antworten erhalten, auf denen Sie aufbauen können?
Nohillside
Wie ich sehe, hat Stuffe meine Frage bereits bearbeitet. Vielen Dank. Meine Frage ist wie der Titel sagt, wie man JAVA_HOME und PATH auf Mavericks setzt.
Akcasoy
@patrix: Nächstes Mal erkläre ich dir mein Problem oder was ich fragen möchte und du schreibst MEINE FRAGE MIT DEINEN WORTEN. OK? Ihr Moderatoren scheint damit sehr zufrieden zu sein.
Akcasoy

Antworten:

44

Ich habe ein .profile in meinem Home-Verzeichnis. Es enthält viele export …Anweisungen für Umgebungsvariablen.

Sie können eine solche Datei erstellen, indem Sie ein Terminal öffnen und den Befehl touch .profile Terminal schließen eingeben.

Dann sollten Sie diese Datei in einem Nur-Text-Editor (zum Beispiel TextWrangler) öffnen. Sie können es auch nano .profilein einem Terminal-Fenster verwenden (das aktuelle Verzeichnis sollte Ihr Zuhause sein), was viel einfacher ist als vi. Einfügen von Zeilen wie export JAVA_HOME=…. Speichern, nanobeenden , wenn Sie das verwendet haben, und beenden Sie ein laufendes Terminal.

Öffnen Sie das Terminal und geben Sie den Befehl ein env, um alle Umgebungsvariablen anzuzeigen. Überprüfen Sie, ob die von Ihnen definierten Werte dem von Ihnen zugewiesenen Wert entsprechen. Sie sollten jetzt gut zu gehen sein. Vergessen Sie jedoch nicht, dass die in definierten Umgebungsvariablen .profilenicht an GUI-Anwendungen übergeben werden.

Bhas
quelle
Vielen Dank. Das war es, wonach ich wirklich gesucht habe. Ich habe jetzt alle meine Variablen gesetzt. Was meinst du mit GUI-Anwendungen? Ich brauchte nur einige Variablen für Java und Maven, um mit Eclipse, Spring Tools usw. zu arbeiten. Eclipse ist eine Anwendung mit GUI (Graphical User Interface). Meinen Sie das mit GUI?
Akcasoy
Okay. Ich habe einige gelesen und ich denke, Sie meinen wirklich GUI mit GUI. Gibt es eine Möglichkeit, diese Variablen überall verfügbar zu machen? Was ist der gebräuchlichste Weg oder wo ist der gebräuchlichste Ort, um sie dann zu definieren?
Akcasoy
1. Ja, das habe ich mit einer GUI-App gemeint. 2. Das Festlegen von Umgebungsvariablen für GUI-Apps in OS X 10.8 scheint schwierig zu sein. In einigen Apps können Sie Umgebungsvariablen definieren, die beispielsweise in ihren Einstellungen an andere Anwendungen übergeben werden sollen. Sie können die open -a AppnameMethode auch in einer Terminal-Sitzung verwenden.
Bhas
4
Ich weiß nicht warum, aber für mich (OS X Yosemite 10.10.1) hat das .profilenicht geholfen. Ich musste die exportAussagen in die setzen .bash_profile, damit es funktioniert. Hoffentlich hilft das jemand anderem, wenn er auf die gleichen Probleme
stößt
22

In Yosemite solltest du export VARIABLE='something'reinstecken .bash_profile.

Ich habe versucht, das export VARIABLE='something'Innere .profileohne Erfolg zu schreiben .

Rafael Eyng
quelle
Tatsächlich. .profile funktioniert nur, wenn Sie es manuell über ausführen. source .profile Nach einem Neustart wird das .profile jedoch nicht geladen. Das .bash_profile ist.
KC
nicht wirklich richtig.
Koray Tugay
2
@KorayTugay Kannst du zeigen, was falsch ist, und vielleicht einen Weg, es zu beheben?
Rafael Eyng
7

Für diejenigen, die den Ärger mit Textdateien und Editoren nicht mögen, gibt es auf GitHub auch ein GUI-Tool .

mkraemerx
quelle
Toll ! Ich verbrachte den ganzen Tag herauszufinden , die Umgebungsvariable Problem zu lösen , und ich war nirgends .Die App , die Ihnen meine Umgebung Ärger gelöst posted all
Shajo
5

Für das Hinzufügen eines Verzeichnisses zu einem Pfad gibt es in OS X eine bessere Option: Alle Einträge in der Datei / etc / arrows werden dem Pfad hinzugefügt, bevor eine Shell gestartet wird.

Bearbeiten Sie diese Datei mit:

sudo pico /etc/paths

Weitere Informationen finden Sie unter: https://gist.github.com/Overbryd/1669348

Bjinse
quelle
Danke! Für mich ist dies die eleganteste Art, einen neuen Pfad aufzunehmen
Asimov,
4

OSX hatte nur eine Änderung bezüglich der Umgebungsvariablen, und zwar in Lion, wo ~ / .MacOSX / environment.plist entfernt wurde. Obwohl es auch eine Änderung in der Standard-Shell in 10.2 oder 10.3 von tsch zu bash gegeben hat.

Sie müssen definieren, für was die Umgebungsvariable festgelegt werden soll und welche Umgebung Sie haben.

Sie müssen auch Shells und Unix verstehen, die Sie durch Ihre Kommentare nicht vollständig erledigt haben. Es gibt verschiedene nbash-Tutorials.

Bezüglich Ihrer Punkte

  1. Sie verstehen es richtig, wenn Sie sich in einer Shell vom Typ sh befinden (z. B. bash oder zsh)
  2. Dies gilt für C-Shells, z. B. tcsh, und funktioniert daher nicht für aktuelle Standardeinstellungen.
  3. Sie müssen .profile erstellen, dann funktioniert es
  4. Es ist .bash_profile oder besser .bashrc und Sie müssen zuerst die Datei erstellen
  5. Völlig korrekt :) Benutze TextEdit oder Nano (oder Emacs)
  6. Korrigieren Sie auf OSX 10.7 und versuchen Sie dies für Programme, die vom Arbeitsbereich aus aufgerufen werden, z. B. vom Dock oder Finder (oder öffnen).

3 oder 4 funktionieren also, wenn Sie das Programm von der Kommandozeile aus aufrufen (oder von einem Programm, das in der Kommandozeile gestartet, aber nicht geöffnet wurde)

Wie für Programme von der GUI sehen Sie diese Frage

Was das Internet angeht, so muss man über genügend Hintergrundwissen verfügen, um einen Artikel zu verstehen, denn wie Sie festgestellt haben, nehmen viele Dinge an oder sind falsch. StackExhnage-Sites sollten besser sein, da Sie anhand der Anzahl der Stimmen sehen können, ob eine Antwort zugestimmt wurde.

user151019
quelle
Ich habe immer noch kein Ergebnis. Die verknüpfte Frage bringt mich nicht zur Lösung. Ich habe seit 4 Jahren einen Mac, habe aber noch keine (keine) Erfahrung mit UNIX. Ich denke, wenn die Antwort von "Warum ist es verdammt so schwer?" ist "plist wurde entfernt, Änderung in 10.2 oder 10.3, sh Typ Shell, bis zu 10.7 etc .." die Antwort widerspricht sich.
Akcasoy
Es könnte sehr leicht wie in Fenstern gemacht werden. Wie auch immer ... was ich wirklich erwartet hatte, war etw. wie folgt vorgehen: 1 - Startverzeichnis öffnen 2 - Terminal öffnen 3 - "xxx" schreiben 4 - Klicken - Speichern usw. Man muss nicht genügend Hintergrund haben, um nur eine einfache Variable zu setzen. Zumindest könnte man aus diesen Kesselplattenantworten eine richtige Lösung finden das Internet.
Akcasoy
Wenn Sie Umgebungsvariablen benötigen, müssen Sie verstehen, was sie tun, und dies erfordert Hintergrundwissen. Auch da Sie nicht angegeben haben, wofür Sie die Variablen verwenden, muss ich alle möglichen Unterschiede angeben. Hinweis zur Java-Einstellung JAVA_HOME ist nicht unbedingt der beste Weg (siehe Java-Fragen)
user151019
Meine Frage war zum Einstellen der Variablen. Weder über das, was sie tun, noch über andere Dinge, die weitere Informationen erfordern. Sie können sie natürlich auch ohne Hintergrund einstellen. Vielen Dank für Ihre Antwort. Aber wie ich bereits schrieb, reichte ein einfacher Lösungsvorschlag, den ich bereits dank Bhas habe.
Akcasoy
Sie sollten wirklich keine Variablen ohne Hintergrund festlegen, Sie müssen wissen, was sie tun
user151019
3

Wenn Sie zshwie ich verwenden, müssen Sie ändern ~/.zshrc.

auf wiedersehen
quelle
Oder in.zprofile
timetofly