Legen Sie Umgebungsvariablen unter Mac OS X Lion fest

532

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

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

Ich muss die Variablen sowohl für GUI-Anwendungen als auch für Befehlszeilenanwendungen festlegen, und im Moment ist es für ein Ant-Skript, das die Variablen benötigt, aber es wird höchstwahrscheinlich auch andere Anforderungen geben.

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

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

Anders
quelle
Keine der Antworten funktioniert, wenn Sie versuchen, sie aus einer Anwendung wie spring zu lesen.
Mehraj Malik

Antworten:

403

Zunächst ist zu erkennen, dass OS X auf Unix basiert. Hier kommt das .bash_profile ins Spiel. Wenn Sie die Terminal-App in OS X starten, erhalten Sie standardmäßig eine Bash-Shell. Die Bash-Shell stammt von Unix und führt beim Laden das Skript .bash_profile aus. Sie können dieses Skript für Ihren Benutzer ändern, um Ihre Einstellungen zu ändern. Diese Datei befindet sich unter:

~/.bash_profile

Update für Mavericks

OS X Mavericks verwendet die Datei environment.plist nicht - zumindest nicht für OS X-Windows-Anwendungen. Sie können die Startkonfiguration für Fensteranwendungen verwenden. Das .bash_profile wird weiterhin unterstützt, da dies Teil der in Terminal verwendeten Bash-Shell ist.

Nur Löwe und Berglöwe

OS X-Fensteranwendungen empfangen Umgebungsvariablen aus der Datei environment.plist. Dies ist wahrscheinlich das, was Sie mit der Datei ".plist" meinen. Diese Datei befindet sich unter:

~/.MacOSX/environment.plist

Wenn Sie eine Änderung an Ihrer Datei environment.plist vornehmen, werden für OS X-Windows-Anwendungen, einschließlich der Terminal-App, diese Umgebungsvariablen festgelegt. Jede Umgebungsvariable, die Sie in Ihrem .bash_profile festlegen, wirkt sich nur auf Ihre Bash-Shells aus.

Im Allgemeinen setze ich nur Variablen in meiner .bash_profile-Datei und ändere nicht die .plist-Datei (oder die launchd-Datei auf Mavericks). Die meisten OS X-Fensteranwendungen benötigen keine benutzerdefinierte Umgebung. Nur wenn eine Anwendung tatsächlich eine bestimmte Umgebungsvariable benötigt, ändere ich die Datei environment.plist (oder die Datei launchd auf Mavericks).

Es hört sich so an, als ob Sie die Datei environment.plist und nicht das .bash_profile ändern möchten.

Eine letzte Sache, wenn Sie nach diesen Dateien suchen, werden Sie sie wahrscheinlich nicht finden. Wenn ich mich richtig erinnere, waren sie bei meiner Erstinstallation von Lion nicht vorhanden.

Bearbeiten: Hier finden Sie einige Anweisungen zum Erstellen einer Plist-Datei.

  1. Öffnen Sie Xcode
  2. Wählen Sie Datei -> Neu -> Neue Datei ...
  3. Wählen Sie unter Mac OS X Ressourcen aus
  4. Wählen Sie eine Plist-Datei
  5. Befolgen Sie die restlichen Anweisungen

Um die Datei zu bearbeiten, können Sie bei gedrückter Ctrl-Taste auf ein Menü klicken und Zeile hinzufügen auswählen. Sie können dann ein Schlüsselwertpaar hinzufügen. Bei Umgebungsvariablen ist der Schlüssel der Name der Umgebungsvariablen und der Wert der tatsächliche Wert für diese Umgebungsvariable.

Sobald die Plist-Datei erstellt wurde, können Sie sie mit Xcode öffnen, um sie jederzeit zu ändern.

David V.
quelle
OK danke. Ich glaube, ich habe verstanden, dass die Tilde meinen sogenannten Home-Ordner bedeutet, richtig (dh / Users / Anders in meinem Fall)? Wenn sie nicht vorhanden sind, sollte ich eine neue leere Textdatei mit den von Ihnen genannten Namen erstellen (darf ich eine Datei erstellen, die mit einem Punkt beginnt?). Und was in diesen Dateien hinzufügen, um eine Umgebungsvariable festzulegen? Zum Beispiel muss ich eine Variable AHF_OPT hinzufügen, die auf einen Ordner verweisen soll, der von einem Ant-Skript benötigt wird. Wie füge ich das in diesen beiden Dateien hinzu?
Anders
1
Zwei Dinge, die Sie versuchen sollten: Erstens hat Ihre eingefügte Zeichenfolge nach ".dtd>" ein falsches Semikolon. Möglicherweise handelt es sich um einen Fehler beim Kopieren und Einfügen, aber ich musste ihn entfernen, damit Xcode die Datei lesen kann. Zweitens müssen Sie sich möglicherweise abmelden und wieder anmelden, damit die Effekte auftreten.
David V
7
Auch ist es nützlich zu wissen ~/.bashrc. ~/.bashrcDie Datei wird jedes Mal ausgeführt, wenn Sie eine neue Bash-Shell ohne Anmeldung wie xterm / aterm öffnen. Sie wird ~/.bash_profilenur mit Anmeldeshells ausgeführt, dh wenn Sie sich zum ersten Mal beim System anmelden.
DanSkeel
1
Hier finden Sie eine schöne, klare Erklärung zum Hinzufügen von environment.plist. Developer.apple.com/library/mac/#qa/qa1067/_index.html .
Und schließlich
1
Tolle Antwort, mit Ausnahme des unangenehmen Satzes "OS X Windows-Anwendung". Das ist noch schlimmer, als X11 als "X Windows" zu bezeichnen. Nennen Sie es besser Aqua oder einfach ".app-Anwendungen".
SigmaX
222

Ihre .profileoder .bash_profilesind einfach Dateien, die in Ihrem "Home" -Ordner vorhanden sind. Wenn Sie ein Finder-Fenster öffnen und im Bereich "Favoriten" auf Ihren Kontonamen klicken, werden diese nicht angezeigt. Wenn Sie ein Terminalfenster öffnen und eingeben, lsum Dateien aufzulisten, werden sie immer noch nicht angezeigt. Sie können sie jedoch ls -aim Terminal finden. Wenn Sie Ihren bevorzugten Texteditor öffnen (z. B. TextEdit, da er mit OS X geliefert wird) und Datei-> Öffnen ausführen und dann Command+ Shift+ drücken .und auf Ihren Kontonamen (Basisordner) klicken, werden diese ebenfalls angezeigt . Wenn Sie sie nicht sehen, können Sie sie in Ihrem bevorzugten Texteditor erstellen.

Das Hinzufügen von Umgebungsvariablen ist jetzt relativ einfach und konzeptionell bemerkenswert ähnlich wie bei Windows. Fügen Sie in Ihrer .profileDatei den Variablennamen und seinen Wert wie folgt hinzu:

export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home

usw.

Wenn Sie Ihre Variable "PATH" ändern, müssen Sie den Standardpfad des Systems angeben, der bereits für Sie festgelegt wurde:

export PATH=$PATH:/path/to/my/stuff

Hier ist der skurrile Teil: Sie können entweder ein neues Terminalfenster öffnen, damit die neuen Variablen wirksam werden, oder Sie müssen die Datei eingeben .profileoder neu .bash_profileladen und den Inhalt auf die Umgebung Ihres aktuellen Terminals anwenden.

Sie können überprüfen, ob Ihre Änderungen wirksam wurden, indem Sie den Befehl "set" in Ihrem Terminal verwenden. Geben Sie einfach ein set(oder set | morewenn Sie eine paginierte Liste bevorzugen) und stellen Sie sicher, dass das, was Sie der Datei hinzugefügt haben, vorhanden ist.

Das Hinzufügen von Umgebungsvariablen zu GUI-Apps ist normalerweise nicht erforderlich. Ich würde gerne mehr darüber erfahren, was Sie speziell tun möchten, um eine bessere Antwort darauf zu erhalten.

tokkov
quelle
2
Danke, ich habe den letzten Teil nicht ganz verstanden. Ich muss entweder ein Terminalfenster öffnen, um sie einzustellen, oder .profile eingeben? Aber müsste ich nicht ein Terminalfenster öffnen, um .profile einzugeben? Und wenn sie automatisch nur durch Öffnen eines Terminalfensters festgelegt werden, warum muss ich das dann eingeben ...? Und wenn ich eine geöffnet habe, werden sie dann dauerhaft eingestellt? Ich habe dich wahrscheinlich missverstanden, weil nicht einmal meine Frage für mich Sinn macht ...
Anders
4
Wenn Sie vor dem Ändern Ihres Profils ein Terminalfenster geöffnet haben, werden diese Änderungen nicht in die vorhandene Terminalumgebung übernommen. Ihre schnelle Lösung besteht darin, einfach ein neues Terminalfenster zu öffnen. Das ist alles. In jedem neuen Fenster ist alles im Profil festgelegt. Immer. Um alte, bereits geöffnete Fenster zu reparieren, geben Sie ".profile" 2 Punkte ein, 1 Leerzeichen dazwischen. Mit dem Befehl "set" werden Umgebungsvariablen festgelegt, die beim Beenden der Sitzung, in der Sie sie festgelegt haben, sterben. Wenn Sie "set" ohne Argumente verwenden, werden die aktuell festgelegten Variablen aufgelistet.
Tokkov
1
Ahhh, ich sehe die Verwirrung, die ich geschaffen habe. Wenn Sie keine Terminalfenster geöffnet hatten, lädt jedes neue Fenster das .profile, wenn es geöffnet wird, und Sie müssen nichts tun. Wenn Sie andererseits das .profile in Ihrem Terminalfenster bearbeitet oder zuvor Terminalfenster geöffnet hatten und die Änderungen in diesen wollten, müssen Sie einfach eingeben . .profile, um sie zu laden.
Tokkov
2
Ich kann es nicht zum Laufen bringen. Ich habe unter / Users / Anders eine Datei .bash_profile mit dem Zeilenexport AXF_DIR = / Applications / Antenna / AHFormatterV53 hinzugefügt, aber der Ant-Prozess findet immer noch keine Variable AXF_DIR ... Außerdem habe ich den Befehl set in Terminal ausprobiert. und bekam viele Informationen, aber nichts über diese Variable. Beachten Sie, dass ich das System auch neu gestartet habe, um sicherzugehen, und auch ein neues Terminalfenster gestartet habe ...
Anders
2
Versuchen Sie es einfach zu benennen .profile. Ich habe gerade einen Blick auf eine Maschine geworfen, die ich kürzlich gekauft habe, und sie scheint .profileheutzutage zu benutzen und nicht.bash_profile
tokkov
77

Hier finden Sie weitere Informationen speziell zur PATH-Variablen in Lion OS 10.7.x:

Wenn Sie den PATH global festlegen müssen, wird der PATH vom System in der folgenden Reihenfolge erstellt:

  1. Analysiert den Inhalt der Datei /private/etc/paths, einen Pfad pro Zeile
  2. Analysieren des Inhalts des Ordners /private/etc/paths.d. Jede Datei in diesem Ordner kann mehrere Pfade enthalten, einen Pfad pro Zeile. Die Ladereihenfolge wird zuerst durch den Dateinamen und dann durch die Reihenfolge der Zeilen in der Datei bestimmt.
  3. Eine setenv PATHAnweisung in /private/etc/launchd.conf, die diesen Pfad an den bereits in # 1 und # 2 erstellten Pfad anfügt (Sie dürfen $ PATH nicht verwenden, um auf die bisher erstellte PATH-Variable zu verweisen). Das Festlegen des PFADS hier ist jedoch angesichts der beiden anderen Optionen völlig unnötig, obwohl hier andere globale Umgebungsvariablen für alle Benutzer festgelegt werden können.

Diese Pfade und Variablen werden von allen Benutzern und Anwendungen geerbt, sodass sie wirklich global sind. Durch Abmelden und Anmelden werden diese Pfade nicht zurückgesetzt. Sie werden für das System erstellt und erstellt, bevor einem Benutzer die Möglichkeit gegeben wird, sich anzumelden. Änderungen an diesen erfordern daher einen Systemneustart, um wirksam zu werden.

Übrigens, eine Neuinstallation von OS 10.7.x Lion hat keine environment.plist, die ich finden kann, daher funktioniert sie möglicherweise, ist aber möglicherweise auch veraltet.

Jonphipps
quelle
1
Ja, vielen Dank! Dies ist etwas komplizierter als ein einfaches .profile.
Felixyz
2
Wenn Sie den Pfad paths.d verwenden und einen Pfad haben, der Ordner mit Leerzeichen enthält, lassen Sie sie einfach frei. Wenn du versuchst, ihnen zu entkommen (was ist meiner Meinung nach üblich?), funktioniert es nicht (zumindest für mich). Ich habe dies hier gelesen: sweeting.org/mark/blog/2008/05/26/… (Suche nach 'Leerzeichen'). Hoffe das hilft jemand anderem!
Michael Trouw
1
@ MichaelTrouw Dein Kommentar hat mir eine Tonne geholfen! Ich habe Fluchten für die Räume hinzugefügt, aber das war nicht erforderlich! Ich bin auf Mac OS 10.9.2
kpsfoo
@ Jon, wie unterscheidet paths.dsich von paths? Überschreibt der erstere auch den letzteren?
Pacerier
53
echo $PATH

Es wird der aktuelle Pfadwert gedruckt

Dann mach vim ~/.bash_profileund schreib

export PATH=$PATH:/new/path/to/be/added

Hier hängen Sie an den alten Pfad an, behalten also den alten Pfad bei und fügen Ihren neuen Pfad hinzu

dann mach

source ~/.bash_profile

Dadurch wird es ausgeführt und der Pfad hinzugefügt

dann nochmal überprüfen mit

echo $PATH
learner_19
quelle
2
Der Befehl "vim" sollte vim ~ / .bash_profile sein. Ich habe versucht, den Beitrag zu bearbeiten, aber SO sagt mir, dass die Änderungen 6 Zeichen umfassen müssen: /
Jason Polites
31

Leider löste keine dieser Antworten das spezifische Problem, das ich hatte.

Hier ist eine einfache Lösung, ohne sich damit herumschlagen zu müssen bash. In meinem Fall ging es gradlean die Arbeit (zAndroid Studio ).

Übrigens beziehen sich diese Schritte auf OSX (Mountain Lion 10.8.5)

  • Terminal öffnen.
  • Führen Sie den folgenden Befehl aus:

    sudo nano /etc/paths(oder sudo vim /etc/pathsfür vim)

    Nano

  • Gehen Sie zum Ende der Datei und geben Sie den Pfad ein, den Sie hinzufügen möchten.
  • Drücken Sie zum Beenden Control-x.
  • Geben Sie 'Y' ein, um den geänderten Puffer zu speichern.
  • Öffnen Sie ein neues Terminalfenster und geben Sie Folgendes ein:

    echo $PATH

Sie sollten den neuen Pfad sehen, der an das Ende des Pfads angehängt ist

Ich habe diese Details aus diesem Beitrag erhalten:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

Ich hoffe das kann jemand anderem helfen

wired00
quelle
Nachdem ich 3 Stunden lang versucht hatte, den Export zu verstehen und auszuführen, versuchte ich dies und es funktionierte. Ein Schritt fehlt. Ich werde es hinzufügen.
1,21 Gigawatt
@ 1.21gigawatts ahh toll, froh, dass es dir geholfen hat, danke für die Änderungen
wired00
1
Update: Dies funktioniert, muss aber nach der Bearbeitung das System neu starten.
Anant Simran Singh
perfekte Lösung!
Jayant Varshney
Perfekt für MacOS 10.12.X
Camille G.
23

Vereinfachte Erklärung

Dieser Beitrag / diese Frage ist ziemlich alt, daher werde ich eine vereinfachte Version für Benutzer von OS X Lion beantworten. Standardmäßig verfügt OSX Lion über keine der folgenden Dateien:

  • ~ / .bashrc
  • ~ / .bash_profile
  • ~ / .profile

Wenn Sie im Terminal etwas getan haben, wird möglicherweise höchstens ~ / .bash_history angezeigt

Was es bedeutet

Sie müssen die Datei erstellen, um Ihre Standard-Bash-Befehle festzulegen (normalerweise in ~ / .bashrc). Verwenden Sie dazu einen beliebigen Editor, obwohl dies im Terminal einfacher ist:

  1. %> emacs .profile
  2. [von w / in Emacs Typ:] source ~/.bashrc
  3. [von w / in Emacs Typ:] Ctrl + x Ctrl + s (um die Datei zu speichern)
  4. [von w / in Emacs Typ:] Ctrl + x Ctrl + c (um Emacs zu schließen)
  5. %> emacs .bashrc
  6. [Geben Sie in w / in emacs alle Ihre Bash-Befehle ein / fügen Sie sie ein, speichern Sie sie und beenden Sie sie]

Wenn Sie das Terminal das nächste Mal beenden und neu laden, sollten alle Ihre Bash-Einstellungen geladen werden. Aus gutem Grund ist es normalerweise eine gute Idee, Ihre Befehle in nützliche Dateinamen zu unterteilen. Zum Beispiel sollten Sie innerhalb von ~ / .bashrc a haben source ~/.bash_aliasesund alle Ihre Alias-Befehle in ~ / .bash_aliases einfügen.

vol7ron
quelle
Warum haben sie es übrigens entfernt?
Pacerier
@ Pacerier Ich bin nicht sicher, ob sie es entfernt haben, aber ohne Anpassungen sind diese Dateien nicht notwendig. Das Problem ist, dass diese Dateien für jeden, der neu im Terminal / Shell, OSX oder BSD ist, nicht offensichtlich und daher schwieriger zu erlernen sind.
Vol7ron
Womit haben sie es ersetzt?
Pacerier
Sie sind optional, also haben sie sie nicht durch irgendetwas ersetzt. Es ist eine RC-Datei
Vol7ron
18

Was für mich funktioniert hat, ist eine .launchd.confmit den Variablen zu erstellen, die ich brauchte:

setenv FOO barbaz

Diese Datei wird von launchd beim Login gelesen. Sie können dem laufenden Start eine Variable 'on the fly' hinzufügen, indem Sie Folgendes verwenden:

launchctl setenv FOO barbaz`

In der Tat .launchd.condenthält einfach launchctl Befehle.

Auf diese Weise festgelegte Variablen scheinen in GUI-Anwendungen ordnungsgemäß vorhanden zu sein.

Wenn Sie zufällig versuchen, Ihre LANG- oder LC_-Variablen auf diese Weise festzulegen, und Sie iTerm2 verwenden, deaktivieren Sie die Einstellung "Gebietsschemavariablen automatisch festlegen" auf der Registerkarte "Terminal" des von Ihnen verwendeten Profils. Dies scheint die Umgebungsvariablen von launchd zu überschreiben, und in meinem Fall wurde ein defekter LC_CTYPE festgelegt, der Probleme auf Remoteservern verursachte (die die Variable übergeben haben).

(Die environment.plist scheint jedoch immer noch auf meinem Lion zu funktionieren. Sie können den RCenvironment-Einstellungsbereich verwenden , um die Datei zu verwalten, anstatt sie manuell zu bearbeiten oder den erforderlichen Xcode zu verwenden. Sie scheint immer noch auf Lion zu funktionieren, obwohl das letzte Update vom Snow Leopard stammt Ära. Macht es zu meiner persönlich bevorzugten Methode.)

Gilimanjaro
quelle
Mit Abstand die einfachste Antwort. Beachten Sie, dass Sie die Terminal-App vollständig schließen und erneut öffnen müssen, damit Änderungen wirksam werden - und nicht nur ein einzelnes Terminalfenster schließen.
Timmmm
1
Diese Antwort ist viel zu einfach, um für OP von Nutzen zu sein. Erstellen wie? Wo erstellen?
HenryRootTwo
15

Richten Sie Ihre PATH-Umgebungsvariable unter Mac OS ein

Öffnen Sie das Terminal-Programm (dies befindet sich standardmäßig in Ihrem Ordner "Programme / Dienstprogramme"). Führen Sie den folgenden Befehl aus

touch ~/.bash_profile; open ~/.bash_profile

Dadurch wird die Datei in Ihrem Standardtexteditor geöffnet.

Für ANDROID SDK als Beispiel:

Sie müssen den Pfad zu Ihrem Android SDK-Plattform-Tools- und Tools-Verzeichnis hinzufügen. In meinem Beispiel verwende ich "/ Development / android-sdk-macosx" als Verzeichnis, in dem das SDK installiert ist. Fügen Sie die folgende Zeile hinzu:

export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools

Speichern Sie die Datei und beenden Sie den Texteditor. Führen Sie Ihr .bash_profile aus, um Ihren PATH zu aktualisieren.

source ~/.bash_profile

Jedes Mal, wenn Sie das Terminal-Programm öffnen, enthält PATH das Android SDK.

Charaf JRA
quelle
Vielen Dank. Ich weiß nicht warum, aber nur diese Lösung hat bei mir funktioniert, nicht die oben genannten.
Kroky
Ich habe die Umgebungsvariable hinzugefügt, wie Sie sagten, aber ich kann sie nicht in xcode verwenden. Haben Sie eine Idee? Ich muss es im Header-Suchpfad verwenden. Danke im Voraus.
Yucel Bayram
11

Hinzufügen von Pfadvariablen zu OS X Lion

Das war ziemlich einfach und hat für mich im Terminal funktioniert:

$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile 
$. .bash_profile #restart your bash shell

Eine ähnliche Antwort gab es hier: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516

Gier Joseph Etse
quelle
1
Es ist erwähnenswert, dass Sie dies im Stammverzeichnis Ihres Home-Verzeichnisses ausführen müssen. Stellen Sie sicher, dass Sie dort sind, indem Sie cdohne Argumente oder cd ~/.
Ephsmith
3
Es ist auch nicht erforderlich, die Shell neu zu starten. Verwenden Sie source .bash_profile.
Ephsmith
Ich mag diese Methode, weil sie kurz ist. Aber es scheint nicht zu funktionieren. Ich habe es getan. echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profileDann kann ich es nur tun, mysql -u root -pwenn ich bereits bei root laufe. Während ich Applications/XAMPP/xamppfiles/bin/mysql -u root -püberall verwenden kann. Ich habe beide erwähnten Neustart-Ansätze ausprobiert: Yaw's und @ ephsmith's.
Kasavbere
Auch wenn ich $ PATH als root (dh sudo su) ech bekomme, bekomme ich /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin. Wenn ich nicht root bin, bekomme ich/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
kasavbere
Die $PATHVariable ist benutzerspezifisch (root ist ein Benutzer).
Ephsmith
7

Terminal öffnen:

vi ~/.bash_profile

Ändern auf System anwenden (Computer muss nicht neu gestartet werden):

source ~/.bash_profile

(Arbeiten Sie auch mit macOS Sierra 10.12.1)

Mach Nhu Vy
quelle
5

Ich hatte ein Problem mit Eclipse (als GUI gestartet, nicht über ein Skript) unter Maverics, dass kein benutzerdefinierter Pfad verwendet wurde. Ich habe alle oben genannten Methoden ohne Erfolg ausprobiert. Schließlich fand ich die einfachste funktionierende Antwort basierend auf den Hinweisen von hier :

  1. Zum /Applications/eclipse/Eclipse.app/Contents Ordner

  2. Bearbeiten Sie die Datei Info.plist mit dem Texteditor (oder XCode) und fügen Sie das LSEnvironment- Wörterbuch für die Umgebungsvariable mit dem vollständigen Pfad hinzu . Beachten Sie, dass es auch / usr / bin etc enthält:

    <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.fra‌​mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
    
  4. Starten Sie Eclipse neu

JaakL
quelle
5

Lassen Sie sich von meinem persönlichen Beispiel sehr überflüssig veranschaulichen.

  1. Stellen Sie nach der Installation von JDK zunächst sicher, dass es installiert ist. Geben Sie hier die Bildbeschreibung ein
  2. Manchmal richtet macOS oder Linux im Gegensatz zu Windows automatisch Umgebungsvariablen für Sie ein. Das ist aber nicht immer der Fall. Also lass es uns überprüfen. Geben Sie hier die Bildbeschreibung ein Die Zeile unmittelbar nach echo $ JAVA_HOME wäre leer, wenn die Umgebungsvariable nicht gesetzt wäre. In Ihrem Fall muss es leer sein.

  3. Jetzt müssen wir überprüfen, ob wir die Datei bash_profile haben. Geben Sie hier die Bildbeschreibung ein 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. Geben Sie hier die Bildbeschreibung ein

  5. Überprüfen Sie erneut, ob die Datei bash_profile vorhanden ist. Geben Sie hier die Bildbeschreibung ein

  6. Öffnen wir nun die Datei bash_profile. macOS öffnet es mit seinem Standardprogramm TextEdit. Geben Sie hier die Bildbeschreibung ein

  7. Dies ist die Datei, in der Umgebungsvariablen gespeichert werden. Wenn Sie eine neue bash_profile-Datei geöffnet haben, muss diese leer sein. In meinem Fall war es bereits für die Python-Programmiersprache und die Anaconda-Distribution eingestellt. Jetzt muss ich Umgebungsvariable für Java hinzufügen, die nur die erste Zeile hinzufügt. Sie müssen die erste Zeile VERBATIM eingeben. NUR die erste Zeile. Speichern und schließen Sie den TextEdit. Schließen Sie dann das Terminal. Geben Sie hier die Bildbeschreibung ein

  8. Öffnen Sie das Terminal erneut. Lassen Sie uns überprüfen, ob die Umgebungsvariable eingerichtet ist. Geben Sie hier die Bildbeschreibung ein

Sumit Pokhrel
quelle
4

Ich bin den idiotischen Weg gegangen. Diese wurden am Ende von / etc / profile hinzugefügt

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

Erstellt einen Ordner / etc / environment. Erstellen Sie darin eine Datei mit dem Namen "oracle" oder "was auch immer" und fügen Sie das benötigte Material hinzu, das global eingestellt werden soll.

/ 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
Rob in Katy
quelle
1

Weitere Details, die vielleicht für jemanden hilfreich sein können:

Aufgrund meiner eigenen Erkundungen weiß ich jetzt, wie Umgebungsvariablen auf 7 von 8 verschiedenen Arten festgelegt werden. Ich habe versucht, einen Envar zu einer Anwendung zu bringen, die ich unter Xcode entwickle. Ich setze "Tracer" -Evars mit diesen verschiedenen Methoden, um mir zu sagen, welche es in den Anwendungsbereich meiner Anwendung aufnehmen. Aus dem Folgenden können Sie ersehen, dass das Bearbeiten des "Schemas" in Xcode zum Hinzufügen von Argumenten ebenso funktioniert wie "putenv". Was es in diesem Bereich nicht festgelegt hat: ~ / .MACOS / environment.plist, app-spezifische Liste, .profile und Hinzufügen einer Erstellungsphase zum Ausführen eines benutzerdefinierten Skripts (ich habe in Xcode [zumindest] einen anderen Weg gefunden, dies festzulegen einer hat aber vergessen, wie ich den Tracer genannt habe 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 in das Terminal gehe und "set" sage, scheint es, dass das einzige, das es bekommt, das von .profile ist (ich hätte gedacht, es würde auch environment.plist aufnehmen, und ich bin es Sicher, als ich einmal einen zweiten Tracer-Envar im Terminal gesehen habe, ist seitdem wahrscheinlich etwas wackelig geworden. Langer Tag ....)

Photovore
quelle
0

Schritt 1: Öffnen ~/.bash_profile

Jetzt öffnet sich ein Texteditor:

Schritt 2: Der Variablenname sollte in Großbuchstaben angegeben werden. In diesem Beispiel ist die VariableNODE_ENV

Schritt 3: export NODE_ENV=development

Speichern Sie es und schließen Sie es.

Starten Sie Ihr System neu.

Erledigt.

So überprüfen Sie die env-Variable: Öffnen Sie das Terminal und geben Sie ein

echo $NODE_ENV 
Navya
quelle
0

Es wird empfohlen, die Standard-Terminal-Shell vor dem Festlegen von Umgebungsvariablen über die folgenden Befehle zu überprüfen :

$ echo $SHELL
/bin/zsh

Wenn Ihr Standardterminal wie in meinem Fall / bin / zsh (Z-Shell) ist (persönlich Z-Shell bevorzugen), sollten Sie diese Umgebungsvariable in der Datei ~ / .zshenv mit folgendem Inhalt festlegen (in diesem Beispiel wird die Umgebungsvariable JAVA_HOME festgelegt , aber das gleiche gilt für andere):

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

In ähnlicher Weise sollten Sie für jeden anderen nicht oben genannten Terminaltyp die Umgebungsvariable in der jeweiligen Terminal-Env-Datei festlegen.

Jerry Chong
quelle