Frage:
Richtiger Weg, um Pfade zu PATH in Mojave hinzuzufügen
alfredopacino
2019-04-25 22:55:54 UTC
view on stackexchange narkive permalink

Mir ist nicht klar, wie ich der PATH env var permanent Pfade hinzufügen soll.Ich habe dafür jedes Mal mehrere Fragen mit unterschiedlichen Antworten gefunden. Ich habe in meinem Home-Verzeichnis ein .bash_profile erstellt, aber jedes Mal, wenn ich neu starte, muss ich meine Pfade manuell exportieren .

source ~ / .bash_profile funktioniert nicht einmal.

Was fehlt mir?

Dies ist derzeit mein .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"
 
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, das ist seltsam. Eigentlich sind alle Pfade hier, die erste Zeile ausgeschlossen (die Python-Zeile).
Ich hatte erwartet, dass Sie das Ergebnis von "echo $ PATH" veröffentlichen, damit ich explizit und spezifisch sehen konnte, was das Ergebnis war.Entschuldigung, aber ich kann nicht helfen, wenn ich nicht die Informationen bekomme, die ich anfordere!
`/ Applications / XAMPP / xamppfiles / bin: / usr / local / opt / openssl / bin: / usr / local / bin: / usr / bin: / bin: / usr / sbin: / sbin`
Okay, ich habe `export PATH =" / usr / local / opt / python / libexec / bin: $ PATH "` oben in meiner `~ / .bash_profile`-Datei hinzugefügt und es beim erneuten Öffnen von Terminal ordnungsgemäß bezogen.Ich würde vorschlagen, die ersten beiden "export PATH =" zu tauschen und zu prüfen, ob dies einen Unterschied macht.
Ich habe die Zeilen getauscht und es sieht so aus, als hätte ich sie gelöst. Ich weiß nicht warum.Vielen Dank!
Ohne vorher die Datei `~ / .bash_profile` in einem Hex-Editor angesehen zu haben, bevor sie gemäß meinem Vorschlag bearbeitet wurde, kann ich nicht sicher sagen, aber manchmal wird das Umschalten des Bits sozusagen einen Fehler beheben.
Ja, ein unsichtbarer Saibling wäre der einzige Grund.Vielen Dank
Einer antworten:
#1
+16
slm
2019-04-28 18:39:46 UTC
view on stackexchange narkive permalink

Was Sie angelegt haben, ist die richtige Methode, um dem $ PATH Ihres Benutzers zusätzliche Verzeichnisse hinzuzufügen.

Schritt 1 - ~/.bash_profile

Um Änderungen an Ihrem ~ / .bash_profile vorzunehmen, fügen Sie die Positionen hinzu, die Sie an Ihrem $ PATH ändern möchten.

  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 die Notation . verwenden, um "neu zu laden" und Änderungen an dieser Datei in Ihrer aktuellen Shell vorzunehmen Kontext.

  $. ~ / .bash_profile
 

-oder-

  $ 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 der Variablen $ PATH wiederholen.

  $ echo $ PATH | tr ':' '\ n'
/ usr / local / bin
/ usr / bin
/Behälter
/ 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 eine Binärdatei an mehreren Orten lebt, wird zuerst der Ort gefunden, der verwendet wird.

Beachten Sie auch, dass mehrere Quellen dieser Datei sich negativ auswirken, wenn Sie weiterhin dieselben Änderungen hinzufügen. Daher ist es häufig der Fall, dass Sie den $ PATH vollständig anzeigen möchten einen konsistenten bekannten Anfangszustand und ändern Sie ihn dann mit den folgenden Befehlstypen:

  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 Ihren Basiscode $ PATH wie oben erwähnt manuell zu erstellen, können Sie stattdessen dieses Snippet verwenden, um einen bekannten guten Ausgangspunkt für Ihren $ PATH zu erhalten.

  [-x / usr / libexec / path_helper] && eval $ (/ usr / libexec / path_helper -s)
 

Hiermit wird sichergestellt, dass $ PATH initialisiert wird, damit alle in / etc / path und /etc/paths.d/ aufgeführten Verzeichnisse abgerufen werdenautomatisch hinzugefügt.

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 / path" und "/ etc."/ paths.d / `werden automatisch hinzugefügt.
@nohillside macht Sinn.Ich wusste nicht, dass macOS diesen Helfer hat, danke, ich werde A'er hinzufügen.
Schauen Sie sich `/ etc / profile` an.Dort ist nicht viel los, aber die Initialisierung von "PATH" ist ein Teil davon.
Nur ein Kopf hoch, mein `~. / Bash_profile` führt einfach zu` ~ / .bashrc`, der eigentlichen Datei, die ich ändern musste.
@slm `[-x / usr / libexec / path_helper] && eval $ (/ usr / libexec / path_helper -s)` Das Entfernen des zweiten Teils gibt mir das gleiche Ergebnis wie das Verwenden des ersten Teils, wenn ich 'source ~ / .bash_profile`mehr als einmal.Vielleicht wäre eine Erklärung, was jeder Teil tut, hilfreich.
@slm Der Hinweis unter "Verwenden von path_helper" führt dazu, dass ich Duplikate aller Pfade habe, die ich in ~ / .bash_profile exportiert habe.Wenn wir Pfade pro Benutzer in ~ / .bash_profile hinzufügen, wie vermeiden wir es, sie mit dieser Lösung zu duplizieren?
Ein Hinweis beim Hinzufügen eines Pfads über den Export macht einen Unterschied, wo Sie "$ PATH" eingeben.`export PATH = / usr / local / opt / nano / bin:" $ PATH "` Präfixe an den Pfad anstatt anzuhängen und `export PATH =" $ PATH ": / usr / local / opt / nano / bin` wird an den Pfad angehängtstatt Präfix.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...