Ändern von PATH, sodass /usr/local/bin vor /usr/bin steht

Ich versuche, Brew zu installieren, erhalte aber die folgende Warnung:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Ich habe keine Ahnung, wie ich den Pfad ändern soll. Ich habe mehrere Dateien aus diesem Stapelüberlauf-Beitrag (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2) untersucht, kann aber keinen relevanten Pfad zum Bearbeiten finden. Die einzige Datei, die ich habe, ist meine /etc/profile-Datei, die derzeit so aussieht:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

Ich wollte Python einfach deinstallieren und dann über Homebrew neu installieren, bin aber etwas nervös, weil ich zu viele Dinge auf einmal kaputt mache.

Gibt es eine einfache Möglichkeit, den Pfad zu ändern? Soll ich eine .bash_profile-Datei erstellen? Vielen Dank für jede Hilfe im Voraus.

Antworten (2)

Ja, erstellen Sie eine .bash_profileDatei in Ihrem Home-Verzeichnis mit

PATH="/usr/local/bin:$PATH"

und führen Sie dann einen der folgenden Schritte aus, um die Änderung zu aktivieren

  • ausführen. ~/.bash_profile
  • PATH="/usr/local/bin:$PATH"in der aktuellen Shell ausführen
  • Terminal neu starten
@threenovation Wenn die obige Antwort richtig ist, kann ich vorschlagen, dass Sie sie als Antwort markieren (klicken Sie auf das Häkchen neben der Antwort)
Ich frage mich, ob dies exportiert werden sollte? Untergeordnete Prozesse sollten diesen neuen Pfad ebenfalls haben. Außerdem: Als ich brew einrichtete, wurde ich nicht darauf aufmerksam gemacht, dass /usr/bin vor /usr/local/bin kam.
@StevenLu, es ist bereits exportiert, wenn Sie zu .bash_profile gelangen. Es würde nicht schaden, es explizit wieder zu exportieren, ist aber nicht notwendig.
Danke dafür. Arbeitete "Ihr System ist bereit zu brauen."
Ich bekomme anscheinend doppelte Einträge in $PATH.

Sie müssen /etc/paths so ändern, dass /usr/local/bin vor /usr/bin aufgeführt wird . Dazu müssen Sie Ihren Editor sudo ausführen.

Eine der Möglichkeiten, den Editor zu öffnen, ist

 sudo open -t /etc/paths
Mein PATH wurde in meinem .bash_profile korrekt konfiguriert, aber nicht in /etc/paths. Das hat wunderbar funktioniert.
Verwenden Sie diese Methode NICHT zum Festlegen Ihres Pfads – es besteht die Gefahr, dass Nicht-Terminal-Anwendungen die „gebrauten“ Komponenten aufnehmen und fehlschlagen. Die Verwendung von „sudo“ sollte auch ein Warnsignal sein, es sei denn, Sie verstehen wirklich, was Sie tun (insbesondere bei einem Entwicklungssystem auf Benutzerebene wie Mac Homebrew). Es sollte ausreichen, Ihr .bash_profile zu bearbeiten und das Terminal neu zu starten.
@rholmes Änderungen an wirken sich also nur .bash_profileauf interaktive Benutzershells und nicht auf andere Anwendungen aus?
@flow2k .bash_profile wirkt sich auf interaktive Benutzer-Shells aus. Alle exportierten Variablen werden von Anwendungen gesehen, die über die Shell-Befehlszeile gestartet werden (z. B. das Starten einer „normalen“ Mac-App oder eines Befehlszeilenbefehls). Einige weitere Details finden Sie hier, aber sie unterscheiden sich feiner als das, was Sie gefragt haben: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos Die Antwort von Glenn Jackman ist die zu verwendende .
@rholmes Verstanden - danke. Mein Punkt war, dass es in Ihrem Kommentar von 2014 um Anwendungen geht , die nicht von der Shell aus gestartet werden. Für diese Anwendungen .bash_profilehat keine Auswirkung, /etc/paths aber . Das war der Punkt, den Sie in dem Kommentar von 2014 angesprochen haben, richtig?
@flow2k ja, das hast du richtig angegeben.