Was ist der richtige Weg, um Umgebungsvariablen wie PATH in OS X zu ändern?
Ich habe ein wenig bei Google nachgesehen und drei verschiedene Dateien zum Bearbeiten gefunden:
- / etc / path
- ~ / .profile
- ~ / .tcshrc
Ich habe nicht einmal einige dieser Dateien und bin mir ziemlich sicher, dass .tcshrc falsch ist, da OS X jetzt Bash verwendet. Wo sind diese Variablen, insbesondere PATH, definiert?
Ich verwende OS X 10.5 (Leopard).
macos
bash
path
environment-variables
Paul Wicks
quelle
quelle
env "switch.1.disabled=true" open -n /Applications/Eclipse.app/
um die GUI-Anwendung mit einer neuen festgelegten Systemumgebung zu starten.Antworten:
Bruno ist auf dem richtigen Weg. Ich habe umfangreiche Nachforschungen angestellt und wenn Sie Variablen festlegen möchten, die in allen GUI-Anwendungen verfügbar sind, ist Ihre einzige Option
/etc/launchd.conf
.Bitte beachten Sie, dass environment.plist nicht für Anwendungen funktioniert, die über Spotlight gestartet werden. Dies wird von Steve Sexton hier dokumentiert .
Öffnen Sie eine Terminal-Eingabeaufforderung
Typ
sudo vi /etc/launchd.conf
(Hinweis: Diese Datei ist möglicherweise noch nicht vorhanden.)Fügen Sie Inhalte wie die folgenden in die Datei ein
Speichern Sie Ihre Änderungen in vi und starten Sie Ihren Mac neu. Oder verwenden Sie den Befehl
grep
/xargs
, der im obigen Codekommentar angezeigt wird.Beweisen Sie, dass Ihre Variablen funktionieren, indem Sie ein Terminalfenster öffnen und eingeben,
export
und Sie sollten Ihre neuen Variablen sehen. Diese sind auch in IntelliJ IDEA und anderen GUI-Anwendungen verfügbar, die Sie über Spotlight starten.quelle
launchd.conf
ist eine Möglichkeit, erfordert jedoch einen Neustart (um launchd neu zu starten). Wenn Sie einen Neustart vermeiden möchten, lesenSo legen Sie die Umgebung für neue Prozesse fest, die von Spotlight gestartet wurden (ohne dass ein Neustart erforderlich ist)
Sie können die Umgebung festlegen, die von launchd (und damit auch von Spotlight aus) verwendet wird
launchctl setenv
. Zum Beispiel, um den Pfad festzulegen:Oder wenn Sie Ihren Pfad in
.bashrc
oder ähnlich einrichten möchten, lassen Sie ihn in launchd spiegeln:Es ist kein Neustart erforderlich obwohl Sie eine App neu starten müssen, wenn sie die geänderte Umgebung übernehmen soll.
Dies schließt alle Shells ein, die bereits unter Terminal.app ausgeführt werden. Wenn Sie jedoch dort sind, können Sie die Umgebung direkter einstellen, z. B. mit
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
for bash oder zsh.So behalten Sie Änderungen nach einem Neustart bei
Um Änderungen nach einem Neustart beizubehalten, können Sie die Umgebungsvariablen
/etc/launchd.conf
wie folgt festlegen :launchd.conf
wird beim Neustart automatisch ausgeführt.Wenn diese Änderungen jetzt wirksam werden sollen, sollten Sie diesen Befehl zur
launchctl.conf
erneuten Verarbeitung verwenden (danke @mklement für den Tipp!)Mit dem Befehl erfahren Sie mehr darüber
launchctl
und wie es geladen wird .launchd.conf
man launchctl
quelle
environment.plist
nicht funktioniert.etc/launchd.conf
vor einem Neustart anzuwenden , besteht darin, den Ansatz in der Antwort von @ MatthewMcCullough zu verwenden :egrep "^setenv\ " /etc/launchd.conf | xargs -t -L 1 launchctl
.Bis einschließlich OS X 10.7 (Lion) können Sie sie einstellen in:
Sehen:
Für PATH im Terminal sollten Sie in der Lage sein,
.bash_profile
oder.profile
(Sie müssen es wahrscheinlich erstellen)Für OS X 10.8 (Mountain Lion) und darüber hinaus müssen Sie
launchd
und verwendenlaunchctl
.quelle
preferences.plist
war unter OS X 10.5 weniger als ideal, da zu diesem Zeitpunktpreferences.plist
nicht für Anwendungen gelesen wurde, die über Spotlight gestartet wurden. Siehe den Kommentar von Louis zu Matthews Antwort und email.esm.psu.edu/pipermail/macosx-emacs/2010-May /002113.html . Für OS X 10.6environment.plist
funktioniert genau so, wie es sollte.Lösung für Befehlszeilen- und GUI-Anwendungen aus einer Hand (funktioniert mit Mac OS X 10.10 (Yosemite) und Mac OS X 10.11 (El Capitan))
Nehmen wir an, Sie haben Umgebungsvariablendefinitionen
~/.bash_profile
wie folgt im folgenden Snippet:Wir benötigen einen Launch Agent, der bei jeder Anmeldung und bei Bedarf jederzeit ausgeführt wird und diese Variablen in die Benutzersitzung lädt. Wir benötigen außerdem ein Shell-Skript, um diese Definitionen zu analysieren und die erforderlichen Befehle zu erstellen, die vom Agenten ausgeführt werden müssen.
Erstellen Sie eine Datei mit dem
plist
Suffix (z. B. benanntosx-env-sync.plist
) in einem~/Library/LaunchAgents/
Verzeichnis mit folgendem Inhalt:-l
Parameter ist hier kritisch; Es ist erforderlich, das Shell-Skript mit einer Login-Shell auszuführen , damit~/.bash_profile
es zuerst bezogen wird, bevor dieses Skript ausgeführt wird.Nun das Shell-Skript. Erstellen Sie es
~/.osx-env-sync.sh
mit den folgenden Inhalten:Stellen Sie sicher, dass das Shell-Skript ausführbar ist:
Laden Sie nun den Startagenten für die aktuelle Sitzung:
(Neu) Starten Sie eine GUI-Anwendung und überprüfen Sie, ob sie die Umgebungsvariablen lesen kann.
Das Setup ist dauerhaft. Es wird Neustarts und Neuanmeldungen überleben.
Wenn Sie nach der
~/.bash_profile
Ersteinrichtung (die Sie gerade durchgeführt haben) Änderungen in Ihrer gesamten Umgebung erneut widerspiegeln möchten, führt das erneute Ausführen deslaunchctl load ...
Befehls nicht das aus, was Sie möchten. Stattdessen erhalten Sie eine Warnung wie die folgende:<$HOME>/Library/LaunchAgents/osx-env-sync.plist: Operation already in progress
Gehen Sie wie folgt vor, um Ihre Umgebungsvariablen neu zu laden, ohne den Abmelde- / Anmeldevorgang durchlaufen zu müssen:
Stellen Sie schließlich sicher, dass Sie Ihre bereits ausgeführten Anwendungen (einschließlich Terminal.app) neu starten, um sie auf die Änderungen aufmerksam zu machen.
Ich habe auch den Code und die Erklärungen hier in ein GitHub-Projekt übertragen: osx-env-sync .
Ich hoffe, dass dies die ultimative Lösung sein wird, zumindest für die neuesten Versionen von OS X (Yosemite & El Capitan).
quelle
Tun:
Die Datei ist möglicherweise nicht vorhanden (wenn nicht, können Sie sie einfach erstellen).
Geben Sie dies ein und speichern Sie die Datei:
Lauf
quelle
export
ist, was ich vorschlagen wollte, da BASH nicht unterstütztsetenv
Beim Umgang mit Umgebungsvariablen in OS X sind im Wesentlichen zwei Probleme zu lösen. Das erste ist das Aufrufen von Programmen über Spotlight (das Lupensymbol auf der rechten Seite des Mac-Menüs / der Statusleiste) und das zweite beim Aufrufen von Programmen über das Dock . Das Aufrufen von Programmen von einer Terminal - Anwendung / Nutzen ist trivial , weil sie die Umwelt vor den Standard - Shell Standorten lesen (
~/.profile
,~/.bash_profile
,~/.bashrc
, etc.)Verwenden Sie beim Aufrufen von Programmen vom Dock aus,
~/.MacOSX/environment.plist
wo das<dict>
Element eine Folge von<key>KEY</key><string>theValue</string>
Elementen enthält.Stellen Sie beim Aufrufen von Programmen über Spotlight sicher, dass launchd mit allen erforderlichen Schlüssel- / Werteinstellungen eingerichtet wurde.
Um beide Probleme gleichzeitig zu lösen, verwende ich ein Anmeldeelement (das über das Tool "Systemeinstellungen" festgelegt wurde) in meinem Benutzerkonto. Das Anmeldeelement ist ein Bash-Skript, das eine Emacs-Lisp-Funktion aufruft, obwohl man natürlich sein bevorzugtes Skript-Tool verwenden kann, um dasselbe zu erreichen. Dieser Ansatz hat den zusätzlichen Vorteil, dass er jederzeit funktioniert und keinen Neustart erfordert. Das heißt, man kann
~/.profile
das Anmeldeelement in einer Shell bearbeiten , ausführen und die Änderungen für neu aufgerufene Programme entweder vom Dock oder von Spotlight aus sichtbar machen.Einzelheiten:
Login-Element:
~/bin/macosx-startup
Emacs Lisp Funktion:
~/lib/emacs/elisp/macosx/envionment-support.el
HINWEIS: Diese Lösung ist eine Mischung aus denen, die vor dem Hinzufügen meiner Lösung entstanden sind, insbesondere die von Matt Curtis. Ich habe jedoch bewusst versucht, meine
~/.bash_profile
Inhaltsplattform unabhängig zu halten und die Einstellungen derlaunchd
Umgebung (nur für Mac) in ein separates Skript zu integrieren .quelle
Eine andere kostenlose OpenSource-Lösung für Mac OS X 10.8 (Mountain Lion) -Einstellungsbereich / Umgebungs.plist ist EnvPane .
Der Quellcode von EnvPane ist auf GitHub verfügbar . EnvPane scheint vergleichbare Funktionen wie RCEnvironment zu haben, es scheint jedoch, dass es seine gespeicherten Variablen sofort aktualisieren kann, dh ohne dass ein Neustart oder eine Anmeldung erforderlich ist, was zu begrüßen ist.
Wie vom Entwickler angegeben:
Haftungsausschluss: Ich bin in keiner Weise mit dem Entwickler oder seinem Projekt verbunden.
PS Ich mag den Namen (klingt wie 'Ends Pain').
quelle
Update (04.08.2017)
Ab (mindestens) macOS 10.12.6 (Sierra) scheint diese Methode für Apache httpd nicht mehr zu funktionieren (für beide
system
als auch für dieuser
Option vonlaunchctl config
). Andere Programme scheinen nicht betroffen zu sein. Es ist denkbar, dass dies ein Fehler in httpd ist.Ursprüngliche Antwort
Dies betrifft OS X 10.10+ (10.11+, insbesondere aufgrund des Rootless-Modus, in dem
/usr/bin
nicht mehr beschreibbar ist).Ich habe an mehreren Stellen gelesen, dass die Verwendung
launchctl setenv PATH <new path>
zum Festlegen derPATH
Variablen aufgrund eines Fehlers in OS X (der aus persönlicher Erfahrung wahr zu sein scheint) nicht funktioniert. Ich habe festgestellt, dass es eine andere MöglichkeitPATH
gibt, die für Anwendungen festgelegt werden kann, die nicht über die Shell gestartet wurden :Diese Option ist in der Manpage launchctl dokumentiert:
Ich habe bestätigt, dass dies mit einer GUI-Anwendung funktioniert, die vom Finder gestartet wurde (der
getenv
zum Abrufen von PATH verwendet wird). Beachten Sie, dass Sie dies nur einmal tun müssen und die Änderung durch Neustarts dauerhaft bleibt.quelle
sudo launchctl procinfo <gui-pid>
zeigt neu eingestelltePATH
Umgebung. Abersudo launchctl config user path <new path>
tatsächlich für alle Benutzer festgelegt ... (bestätigt durch Hinzufügen eines neuen Benutzers und Verwenden der Python-Konsole von Sublime Text)sudo launchctl config user path
, dass dies passiert (was Sie anscheinend annehmen?).launchctl
tut nicht erlaubt Ihnen beliebige Umgebungsvariablen zu setzen. DiePATH
Variable ist eine Ausnahme.Auf Mountain Lion macht das alles
/etc/paths
und das/etc/launchd.conf
Bearbeiten keinen Effekt!Apples Entwicklerforen sagen:
Also habe ich die Anwendung direkt bearbeitet
Info.plist
(Rechtsklick auf "AppName.app" (in diesem Fall SourceTree) und dann "Show package contents
").Und ich habe ein neues Schlüssel / Dikt-Paar hinzugefügt:
(siehe: LaunchServicesKeys-Dokumentation bei Apple )
Jetzt verwendet die Anwendung (in meinem Fall Sourcetree) den angegebenen Pfad und arbeitet mit Git 1.9.3 :-)
PS: Natürlich müssen Sie den Pfadeintrag an Ihre spezifischen Pfadanforderungen anpassen.
quelle
Info.plist
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Slack.app.
Während die Antworten hier nicht "falsch" sind, füge ich noch eine hinzu: Nehmen Sie in OS X niemals Änderungen an Umgebungsvariablen vor, die "alle Prozesse" oder sogar außerhalb der Shell für alle Prozesse betreffen, die von einem bestimmten Benutzer interaktiv ausgeführt werden.
Nach meiner Erfahrung führen globale Änderungen an Umgebungsvariablen wie PATH für alle Prozesse unter OS X sogar noch häufiger zu Problemen als unter Windows. Grund dafür ist, dass viele OS X-Anwendungen und andere Software (einschließlich möglicherweise insbesondere Komponenten des Betriebssystems selbst) auf UNIX-Befehlszeilentools unter der Haube angewiesen sind und das Verhalten der mit dem System gelieferten Versionen dieser Tools annehmen Verwenden Sie dabei nicht unbedingt absolute Pfade (ähnliche Kommentare gelten für dynamisch geladene Bibliotheken und DYLD_ * -Umgebungsvariablen). Bedenken Sie beispielsweise, dass die am besten bewerteten Antworten auf verschiedene Fragen zum Stapelüberlauf zum Ersetzen von OS X-Versionen von Interpreten wie Python und Ruby im Allgemeinen lauten: "Tun Sie dies nicht."
OS X unterscheidet sich in dieser Hinsicht nicht von anderen UNIX-ähnlichen Betriebssystemen (z. B. Linux, FreeBSD und Solaris). Der wahrscheinlichste Grund, warum Apple dies nicht einfach bietet, ist, dass es Dinge kaputt macht . In dem Maße, in dem Windows für diese Probleme nicht so anfällig ist, liegt dies an zwei Dingen: (1) Windows-Software ist in dem Maße nicht auf Befehlszeilentools angewiesen, wie dies bei UNIX-Software der Fall ist, und (2) Microsoft hat dies getan Eine derart umfangreiche Geschichte sowohl der "DLL-Hölle" als auch der Sicherheitsprobleme, die durch Änderungen verursacht wurden, die alle Prozesse betreffen, hat das Verhalten des dynamischen Ladens in neueren Windows-Versionen geändert, um die Auswirkungen "globaler" Konfigurationsoptionen wie PATH zu begrenzen.
"Lahm" oder nicht, Sie haben ein weitaus stabileres System, wenn Sie solche Änderungen auf kleinere Bereiche beschränken.
quelle
Manchmal funktionieren alle vorherigen Antworten einfach nicht. Wenn Sie
M2_HOME
in Eclipse oder in IntelliJ IDEA Zugriff auf eine Systemvariable (wie ) haben möchten , funktioniert in diesem Fall nur Folgendes für mich:Bearbeiten Sie zuerst (Schritt 1),
/etc/launchd.conf
um eine Zeile wie diese zu enthalten: "setenv VAR value", und starten Sie dann (Schritt 2) neu.Das einfache Ändern von .bash_profile funktioniert nicht, da die Anwendungen in OS X nicht wie in anderen Unix-Versionen gestartet werden. Sie erben nicht die Shell-Variablen der Eltern. Alle anderen Änderungen funktionieren aus einem mir unbekannten Grund nicht. Vielleicht kann jemand anderes dies klären.
quelle
Nachdem ich den Einstellungsbereich für Umgebungsvariablen verfolgt und festgestellt habe, dass der Link fehlerhaft ist und eine Suche auf der Apple-Website darauf hinweist, dass sie ihn vergessen haben, bin ich wieder auf die Spur des schwer fassbaren Startvorgangs zurückgekehrt.
Auf meinem System (Mac OS X 10.6.8) scheint es , dass in environment.plist definierten Variablen sind auf Anwendungen zuverlässig exportiert von Spotlight gestartet (über launchd). Mein Problem ist, dass diese Variablen nicht in neue Bash-Sitzungen im Terminal exportiert werden. Dh ich habe das gegenteilige Problem wie hier dargestellt.
HINWEIS: environment.plist sieht wie zuvor beschrieben wie JSON und nicht wie XML aus
Ich konnte Spotlight-Apps durch Bearbeiten von ~ / MacOSX / environment.plist dazu bringen, die Variablen anzuzeigen, und ich konnte dieselben Variablen in eine neue Terminalsitzung zwingen, indem ich meiner .profile-Datei Folgendes hinzufügte:
quelle
man launchd
,man launchctl
undman launchd.conf
in einem Terminal - Fenster. Ich bin froh, dass Apple die Manpages auf dem neuesten Stand hält, auch wenn die Mac Developer Library etwas zurückbleibt.Jede der Bash Startdateien -
~/.bashrc
,~/.bash_profile
,~/.profile
. Es gibt auch eine seltsame Datei, die~/.MacOSX/environment.plist
nach Umgebungsvariablen in GUI-Anwendungen benannt ist.quelle
Ähnlich wie die Antwort, die Matt Curtis gegeben hat, habe ich Umgebungsvariablen über launchctl festgelegt, aber ich verpacke sie in eine Funktion namens export, sodass sie beim Exportieren einer Variablen wie normal in mein .bash_profile auch von launchctl festgelegt wird. Folgendes mache ich:
Mein .bash_profile besteht nur aus einer Zeile (Dies ist nur eine persönliche Präferenz.)
Mein .bashrc hat folgendes:
Das oben Gesagte überlastet den in Bash integrierten "Export" und exportiert alles normal (Sie werden feststellen, dass ich "Export" damit exportiere!). Anschließend stellen Sie sie für OS X-App-Umgebungen über launchctl richtig ein, unabhängig davon, ob Sie eine der folgenden Optionen verwenden:
Auf diese Weise muss ich nicht jedes Mal jede Variable an launchctl senden, sondern ich kann einfach mein .bash_profile / .bashrc so einrichten, wie ich es möchte. Öffnen Sie ein Terminalfenster, überprüfen Sie Ihre Umgebungsvariablen, an denen Sie interessiert sind
launchctl getenv myVar
, ändern Sie etwas in Ihrem .bash_profile / .bashrc, schließen Sie das Terminalfenster und öffnen Sie es erneut, überprüfen Sie die Variable erneut mit launchctl, und voilá, es wurde geändert.Wie bei den anderen Lösungen für die Post-Mountain Lion-Welt müssen auch bei neuen Umgebungsvariablen, die für Apps verfügbar sind, diese nach der Änderung gestartet oder neu gestartet werden.
quelle
Hier ist eine sehr einfache Möglichkeit, das zu tun, was Sie wollen. In meinem Fall brachte es Gradle zum Laufen (für Android Studio).
Führen Sie den folgenden Befehl aus:
sudo nano /etc/paths
odersudo vim /etc/paths
Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
Ö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:
Fügen Sie dem Pfad unter Mac OS X 10.8 Mountain Lion und höher hinzu
quelle
Ich denke, das OP sucht nach einer einfachen, Windows-ähnlichen Lösung.
Bitte schön:
http://www.apple.com/downloads/macosx/system_disk_utilities/environmentvariablepreferencepane.html
quelle
Um genau zu sein, wofür jede Datei bestimmt ist
~/.profile
wird bei jedem Start von Terminal.app bezogen~/.bashrc
Hier werden "traditionell" alle Exportanweisungen für die Bash-Umgebung festgelegt/etc/paths
ist die Hauptdatei in Mac OS, die die Liste der Standardpfade zum Erstellen der Umgebungsvariablen PATH für alle Benutzer enthält/etc/paths.d/
enthält Dateien, die zusätzliche Suchpfade enthaltenNicht-Terminal-Programme erben nicht die systemweiten PATH- und MANPATH-Variablen, die Ihr Terminal ausführt! Um die Umgebung für alle von einem bestimmten Benutzer gestarteten Prozesse festzulegen und damit Umgebungsvariablen für Mac OS X-GUI-Anwendungen verfügbar zu machen, müssen diese Variablen in Ihrem
~/.MacOSX/environment.plist
(Apple Technical Q & A QA1067) definiert werden.Verwenden Sie die folgende Befehlszeile zu synchronisieren
environment.plist
mit/etc/paths
:quelle
/etc/launchd.conf wird in OS X 10.10 (Yosemite), OS X 10.11 (El Capitan), macOS 10.12 (Sierra) oder macOS 10.13 (High Sierra) nicht verwendet.
Von der
launchctl
Manpage:Die in dieser Antwort " Unterschiedliche Fragen" beschriebene Methode funktioniert für mich (nach einem Neustart): Anwendungen, die über das Dock oder über Spotlight gestartet wurden, erben Umgebungsvariablen, die ich festgelegt habe
~/Library/LaunchAgents/my.startup.plist
. (In meinem Fall musste ich SatzLANG
, umen_US.UTF-8
für einen Sublime Text Plugin.)quelle
Die
$PATH
Variable unterliegt auchpath_helper
, was wiederum die/etc/paths
Datei und die Dateien in nutzt/etc/paths.d
.Eine ausführlichere Beschreibung finden Sie in PATH und anderen Umweltproblemen in Leopard (2008-11).
quelle
Es ist einfach:
Bearbeiten Sie ~ / .profile und geben Sie Ihre Variablen wie folgt ein
In Datei legen:
Speichern (: wq)
Starten Sie das Terminal neu (Beenden Sie es und öffnen Sie es erneut)
Stellen Sie sicher, dass alles in Ordnung ist:
quelle
Verwenden Sie für eine einzelne Benutzermodifikation die
~/.profile
von Ihnen aufgelisteten. Der folgende Link erklärt, wann die verschiedenen Dateien von Bash gelesen werden.http://telin.ugent.be/~slippens/drupal/bashrc_and_others
Wenn Sie die Umgebungsvariable für GUI-Anwendungen festlegen möchten, benötigen Sie die Datei ~ / .MacOSX / environment.plist
quelle
Nun, ich bin mir nicht sicher über die
/etc/paths
und~/.MacOSX/environment.plist
Dateien. Die sind neu.Bei Bash sollten Sie jedoch wissen, dass dies
.bashrc
bei jedem neuen Shell-Aufruf.bash_profile
ausgeführt wird und beim Start nur einmal ausgeführt wird.Ich weiß nicht, wie oft dies unter Mac OS X der Fall ist. Ich denke, die Unterscheidung ist zusammengebrochen, als das Fenstersystem alles gestartet hat.
Persönlich beseitige ich die Verwirrung, indem ich eine
.bashrc
Datei mit allem, was ich brauche, erstelle und dann Folgendes tue:quelle
Zusätzlich zu den vorgeschlagenen Ansätzen ist zu beachten, dass zumindest in OS X 10.5 (Leopard) die eingestellten Variablen
launchd.conf
mit den vorgenommenen Einstellungen zusammengeführt werden.profile
. Ich nehme an, dass dies wahrscheinlich auch für die Einstellungen in gültig ist~/.MacOSX/environment.plist
, aber ich habe es nicht überprüft.quelle
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
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:
Speichern Sie die Datei und beenden Sie den Texteditor. Führen Sie Ihr .bash_profile aus, um Ihren PATH zu aktualisieren:
Jedes Mal, wenn Sie das Terminal-Programm öffnen, enthält Ihr PATH das Android SDK.
quelle
Hab das einfach und schnell gemacht. Erstellen Sie zuerst ein ~ / .bash_profile vom Terminal:
dann
hinzufügen
Speichern Sie das Dokument und Sie sind fertig.
quelle
Es ist ganz einfach. Datei bearbeiten
.profile
(vi, nano , Sublime Text oder anderer Texteditor). Sie können es im~/
Verzeichnis (Benutzerverzeichnis) finden und wie folgt einstellen:Beispiel mit Java home:
Speichern Sie es und kehren Sie zum Terminal zurück.
Sie können es neu laden mit:
Oder schließen und öffnen Sie Ihr Terminalfenster.
quelle
Hier gibt es zwei Arten von Muscheln.
Es ist wichtig , hier zu verstehen , dass mit Bash, Datei
.bashrc
nur von einer Hülle , die sowohl interaktiv als auch nicht-Login ist gelesen wird, und Sie werden feststellen , dass die Menschen oft laden finden.bashrc
in.bash_profile
zu überwinden diese Einschränkung.Nachdem Sie das Grundverständnis haben, gehen wir weiter zu dem Punkt, an dem ich Ihnen raten würde, es einzurichten.
.bash_file:
quelle
Login Shells
Die Shell führt zuerst die Befehle in der Datei aus
/etc/profile
. Ein Benutzer, der mit Root-Rechten arbeitet, kann diese Datei einrichten, um systemweite Standardmerkmale für Benutzer festzulegen, die Bash ausführen.Als nächstes sucht die Shell in dieser Reihenfolge nach
~/.bash_profile
,~/.bash_login
und~/.profile
(~ / ist die Abkürzung für Ihr Home-Verzeichnis) und führt die Befehle in der ersten dieser gefundenen Dateien aus. Sie können Befehle in eine dieser Dateien einfügen, um die eingestellten Standardeinstellungen zu überschreiben/etc/profile
. Eine Shell, die auf einem virtuellen Terminal ausgeführt wird, führt in diesen Dateien keine Befehle aus.Wenn Sie sich abmelden, führt bash Befehle in der aus
~/.bash_logout
Datei aus. Diese Datei enthält häufig Befehle, die nach einer Sitzung bereinigt werden, z. B. Befehle zum Entfernen temporärer Dateien.Interaktive Nonlogin-Shells
Obwohl nicht direkt von bash aufgerufen, werden viele
~/.bashrc
Dateien aufgerufen/etc/bashrc
. Mit diesem Setup kann ein Benutzer, der mit Root-Rechten arbeitet, systemweite Standardmerkmale für Bash-Shells ohne Anmeldung festlegen.Eine interaktive Nonlogin-Shell führt Befehle in der
~/.bashrc
Datei aus. In der Regel wird.bash_profile
diese Datei in einer Startdatei für eine Anmeldeshell ausgeführt, z. B. in Anmelde- und Nicht-Anmeldeshells.bashrc
.Da Befehle in häufig
.bashrc
ausgeführt werden können und Subshells exportierte Variablen erben, empfiehlt es sich, Befehle in die.bash_profile
Datei aufzunehmen , die zu vorhandenen Variablen hinzugefügt werden.quelle
Die ganze Magie unter iOS geht nur mit der Verwendung
source
der Datei einher, in die Sie Ihre Umgebungsvariablen exportieren.Zum Beispiel:
Sie können eine Datei wie folgt erstellen:
Speichern Sie diese Datei unter
bimbom.env
und tun Sie diessource ./bimbom.ev
. Voilá, du hast deine Umgebungsvariablen.Überprüfen Sie sie mit:
quelle
Versuchen Sie für Bash, Ihre Umgebungsvariablen zur Datei hinzuzufügen
/etc/profile
, um sie allen Benutzern zur Verfügung zu stellen. Kein Neustart erforderlich, starten Sie einfach eine neue Terminalsitzung.quelle