Ich weiß nicht, wie ich dem Pfad PATH env var dauerhaft Pfade hinzufügen soll. Ich habe mehrere Fragen für gefunden dies jedes Mal mit einer anderen Antwort. Ich habe in meinem Home-Verzeichnis eine .bash_profile
erstellt, aber jedes Mal, wenn ich neu starte, muss ich export
meine Pfade erneut manuell erstellen.
source ~/.bash_profile
funktioniert nicht einmal.
Was fehlt mir?
Dies ist derzeit meine .bash_profile
export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"
Kommentare
- Was meinst du mit " source ~ / .bash_profile ' funktioniert nicht einmal "? Erhalten Sie eine Fehlermeldung?
- Beenden Sie das Terminal und öffnen Sie es erneut … was ' ist das Ergebnis von:
echo $PATH
- @ user3439894 Ja, dass ' seltsam ist, eigentlich sind alle Pfade hier, erste Zeile ausgeschlossen (die Python-Zeile)
- Ich hatte erwartet, dass Sie die Ergebnis von
echo $PATH
, damit ich explizit und spezifisch sehen konnte, was das Ergebnis war. Entschuldigung, aber ich kann ' nicht helfen, wenn ich Ich habe nicht die von mir angeforderten Informationen erhalten! -
/Applications/XAMPP/xamppfiles/bin:/usr/local/opt/openssl/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Antwort
Was Sie angelegt haben, ist die richtige Methode, um Ihrem Benutzer zusätzliche Verzeichnisse hinzuzufügen. $PATH
.
Schritt 1 – ~/.bash_profile
Um Änderungen an Ihrer ~/.bash_profile
vorzunehmen, fügen Sie die von Ihnen „d möchte Ihre $PATH
geändert haben.
export PATH="/usr/local/opt/python/libexec/bin:$PATH" export PATH="/usr/local/opt/openssl/bin:$PATH" export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
Schritt 2 – Quelle ~/.bash_profile
Nachdem Sie die obigen Änderungen an dieser Datei vorgenommen haben, können Sie entweder den Befehl source
oder den Befehl .
Notation zum „Neuladen“ und Änderungen an dieser Datei im Kontext Ihrer aktuellen Shell.
$ . ~/.bash_profile
-or-
$ source ~/.bash_profile
Schritt 3 – Änderungen auswerten
Nachdem Sie die Änderungen vorgenommen und sie bezogen haben, können Sie bestätigen, dass sie den gewünschten Effekt hatten, indem Sie den Inhalt von varible.
$ echo $PATH | tr ":" "\n" /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /Applications/Wireshark.app/Contents/MacOS /usr/local/sbin /Users/smingolelli/bin /usr/local/opt/go/libexec/bin /Applications/Visual Studio Code.app/Contents/Resources/app/bin /Users/smingolelli/projects/kubebuilder/kubebuilder_1.0.5_darwin_amd64/bin/
Die Reihenfolge ist wichtig, daher werden Verzeichnisse, die zuerst auftreten, zuerst durchsucht. Wenn sich eine Binärdatei an mehreren Stellen befindet, wird zuerst die Stelle verwendet, die verwendet wird.
Beachten Sie auch, dass sich mehrere Quellen dieser Datei negativ auf das weitere Hinzufügen derselben Änderungen auswirken. Daher ist es häufig der Fall, dass Sie die $PATH
vollständig in einen konsistenten bekannten Anfangszustand versetzen und ihn dann mit den folgenden Befehlstypen ändern möchten:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin" export PATH="/some/new/dir:$PATH"
Verwenden von path_helper
macOS enthält auch einen Helfer zur Unterstützung bei der Verwaltung Ihres $PATH
. Es befindet sich hier /usr/libexec/path_helper
.
Anstatt Ihre Basis $PATH
wie oben erwähnt manuell zu erstellen, können Sie dies stattdessen tun Verwenden Sie dieses Snippet, um einen bekannten guten Ausgangspunkt für Ihre $PATH
zu erhalten.
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
Dies wird sorgfältig initialisiert $PATH
Alle Verzeichnisse in /etc/paths
und /etc/paths.d/
werden automatisch hinzugefügt.
Kommentare
- Es ist möglicherweise besser,
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
zu verwenden, um den Pfad so zu initialisieren, dass alle in/etc/paths
und/etc/paths.d/
werden automatisch hinzugefügt. - @nohillside macht Sinn. Ich war nicht ' Ich weiß nicht, dass macOS diesen Helfer hatte, danke, ich ' werde A ' er hinzufügen.
- Haben Ein Blick auf
/etc/profile
. Es ' ist dort nicht viel los, aber initial isingPATH
ist ein Teil davon. - Nur ein Kopf ' ist oben, meine
~./bash_profile
leitet nur zu~/.bashrc
, der eigentlichen Datei, die ich ändern musste. - @slm
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
Wenn ich den zweiten Teil entferne, erhalte ich das gleiche Ergebnis wie wenn ich nur den ersten Teil verwende, wenn ichsource ~/.bash_profile
mehr als einmal bin. Vielleicht wäre eine Erklärung der einzelnen Teile hilfreich.