Wie ändere ich PATH für Homebrew?

149

Beim Versuch, Ruby 1.9.3 zu installieren, lesen Sie, dass ich zuerst Homebrew installieren muss. Ran Brew Doctor, und es gibt mir eine Reihe von Warnungen. Eines davon ist:

Warnung: / usr / bin tritt vor / usr / local / bin auf Dies bedeutet, dass vom System bereitgestellte Programme anstelle der von Homebrew bereitgestellten Programme verwendet werden. Die folgenden Tools sind auf beiden Pfaden vorhanden:

easy_install
easy_install-2.6

Ändern Sie Ihren PATH so, dass / usr / local / bin in Ihrem PATH vor / usr / bin steht.

Wie macht man das, worum es hier geht?

mrdavidjcole
quelle
1
@AristotlePagaltzis ‚s Antwort auf Super - User bietet die beste Lösung meiner Meinung nach , so dass Ihr System - Apps weiterhin nutzen /usr/bin, während Sie selektiv Symlink die Homebrew ausführbare Dateien , die Sie anstelle der von Apple ausgelieferten Versionen, wie Git verwenden möchten.
@mrdavidjcole: Fengd hat diese Frage nicht beantwortet?
fotinsky
Stack Overflow ist eine Site für Programmier- und Entwicklungsfragen. Diese Frage scheint nicht zum Thema zu gehören, da es nicht um Programmierung oder Entwicklung geht. Weitere Informationen zu Themen finden Sie hier in der Hilfe. Vielleicht ist Super User oder Apple Stack Exchange ein besserer Ort, um zu fragen. Siehe auch Wo poste ich Fragen zu Dev Ops? .
JWW

Antworten:

298

Öffnen Sie Ihre Datei / etc / path, setzen Sie / usr / local / bin auf / usr / bin

$ sudo vi /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

und Starten Sie das Terminal @mmel neu

fengd
quelle
9
Laden Sie die Umgebung neu oder starten Sie ein neues Terminal, nachdem Sie diese Änderung vorgenommen haben.
mmell
4
Nicht einverstanden damit - sollte die unten stehende Antwort verwenden - Zeitmaschine usw. wird diese Änderung nicht aufgreifen, denke ich als außerhalb des Benutzerordners.
Ian Warner
Dies ist auch die beste Lösung, die ich gefunden habe, wenn Ihr Problem darin besteht, dass RVM und Homebrew beide in Ihrer .bash_profile-Datei um dieselbe Immobilie zu konkurrieren scheinen.
MCB
Ich würde / etc / path NICHT bearbeiten; Verwenden Sie stattdessen die an anderer Stelle beschriebenen Methoden .profile / .bash_profile (z. B. Antwort von @avelis unten oder einen paranoideren Ansatz, siehe den ersten Kommentar, der auf die Antwort von AristotelesPagaltzis auf SuperUser verweist.
rholmes
1
Möglicherweise möchten Sie versuchen, den Nano-Terminal-Texteditor anstelle von via zu verwenden. Ich fand das einfacher zu bedienen. "sudo nano / etc / path" anstelle von "sudo vi / etc / path".
tbradley22
77

Es gibt viele Möglichkeiten, Ihren Pfad zu aktualisieren. Die erste Antwort funktioniert hervorragend. Eine andere Methode besteht darin, Ihr Angebot zu erweitern .bash_profile:

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

Die Linie über Orten /usr/local/binund /usr/local/sbinvor Ihrem $PATH. Sobald Sie beziehen Sie .bash_profileoder ein neues Terminal starten , können Sie Ihren Weg durch überprüfen echo ‚ing it out.

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/Users/<your account>/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Sobald Sie mit dem Ergebnis zufrieden sind, $ brew doctorsollte das erneute Ausführen keinen Fehler mehr verursachen.

Dieser Blog-Beitrag hat mir bei der Lösung von Problemen geholfen, auf die ich gestoßen bin. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/

Avelis
quelle
2
@JanuszChudzynski Bei der Lösung von Jun1st müssen Sie möglicherweise die Befehlszeilensitzung neu starten, um die Änderung zu sehen.
Avelis
Neueste Versionen von Homebrew Day: Stellen Sie Ihren PATH so ein, dass / usr / local / bin vor / usr / bin auftritt. Hier ist ein Einzeiler :echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . Welches ist im Grunde, was diese Antwort nahe legt.
Nacho4d
Ich bezweifle jedoch, dass dies der richtige Weg ist. Siehe unten: Vor der Änderung: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binÄnderung: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileNach der Änderung: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Wenn ein Befehl nicht in / usr / local / bin gefunden wird, wird er möglicherweise zweimal durchsucht, bevor er in einem anderen Pfad gefunden wird. Ich denke, es ist besser, die /etc/pathsDatei zu ändern
nacho4d
$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile gibt mir $ PATH "'>> ~ / .bash_profile -bash: $: Befehl nicht gefunden
Mamba
@rpeg Ich bin sicher, wenn Sie im Internet nach Tutorials suchen, gibt es eine Fülle von Ressourcen, aber hier ist eine, die ich kenne. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis
19

Führen Sie einfach die folgende Zeile in Ihrer bevorzugten Terminalanwendung aus:

echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

Starten Sie Ihr Terminal neu und führen Sie es aus

brew doctor

Das Problem sollte behoben sein

iceturk22
quelle
3
Wenn Sie zsh verwenden, verwenden Sie diesen Befehl echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem
1

Bash-Profil in textEdit öffnen

öffne -e .bash_profile

Bearbeiten Sie die Datei oder fügen Sie sie vor dem PATH-Export ein. PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

Speichern und schließen Sie die Datei

* Um .bash_profile direkt zu öffnen, öffnen Sie textEdit> file> latest

Siddhant Raut
quelle
0

Um unnötige Duplikate zu vermeiden, habe ich meinem ~ / .bash_profile Folgendes hinzugefügt

case ":$PATH:" in
  *:/usr/local/bin:*) ;;     # do nothing if $PATH already contains /usr/local/bin
  *) PATH=/usr/local/bin:$PATH ;;  # in every other case, add it to the front
esac

Bildnachweis: https://superuser.com/a/580611

Mycargus
quelle