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

24

Ich versuche, brew zu installieren, erhalte jedoch 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 untersucht (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), kann jedoch keinen relevanten Pfad zum Bearbeiten finden. Die einzige Datei, die ich habe, ist meine / etc / profile-Datei, die momentan 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, wenn es darum geht, zu viele Dinge auf einmal zu brechen.

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.

threenovation
quelle

Antworten:

30

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

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

Führen Sie anschließend 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
Glenn Jackman
quelle
2
@threenovation Wenn die Antwort oben richtig ist, kann ich vorschlagen, dass Sie es als Antwort markieren (klicken Sie auf das Häkchen neben der Antwort)
Stu Wilson
Ich frage mich, ob das exportiert werden soll? Untergeordnete Prozesse sollten auch diesen neuen Pfad haben. Außerdem: Als ich brew einrichtete, wurde ich nicht darauf aufmerksam gemacht, dass / usr / bin vor / usr / local / bin kam.
Steven Lu
@StevenLu, es ist bereits exportiert, wenn Sie zu .bash_profile gelangen. Es würde nicht schaden, es erneut explizit zu exportieren, ist aber nicht erforderlich.
Glenn Jackman
Danke dafür. Arbeitete "Ihr System ist rar zu brauen."
Vezu
Ich erhalte anscheinend doppelte Einträge in $PATH.
flow2k
10

Sie müssen / etc / path so ändern, dass / usr / local / bin vor / usr / bin aufgeführt ist . Sie müssen Ihren Editor sudo, um das zu tun.

Eine Möglichkeit zum Öffnen des Editors ist

 sudo open -t /etc/paths
Konstantin Spirin
quelle
Mein PFAD wurde in meinem .bash_profile richtig konfiguriert, aber nicht in /etc/paths. Das hat wunderbar funktioniert.
Nick Tomlin
7
Verwenden Sie diese Methode NICHT zum Festlegen Ihres Pfades - es besteht die Gefahr, dass Anwendungen ohne Terminal die "gebrauten" Komponenten aufnehmen und fehlschlagen. Die Verwendung von "sudo" sollte auch eine rote Fahne sein, es sei denn, Sie verstehen wirklich, was Sie tun (insbesondere mit einem Entwicklungssystem auf Benutzerebene wie Mac Homebrew). Bearbeiten Sie Ihr .bash_profile und starten Sie das Terminal neu.
Stockholm
@rholmes Änderungen wirken sich also nur .bash_profileauf interaktive Benutzer-Shells aus und nicht auf andere Anwendungen?
flow2k
1
@ flow2k .bash_profile wirkt sich auf interaktive Benutzer-Shells aus. Alle exportierten Variablen werden von Anwendungen angezeigt, die über die Shell-Befehlszeile gestartet werden (z. B. durch Starten einer "normalen" Mac-App oder eines Befehlszeilenbefehls). Einige weitere Details sind hier zu finden, aber sie machen eine feinere Unterscheidung als das, was Sie gefragt: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos Die Antwort von glenn jackman ist derjenige Gebrauch .
Stockholmes
1
@ flow2k ja, das hast du richtig angegeben.
Stockholmes