Die Homebrew-Installation von Git hat keinen Vorrang vor der Systemversion (in /usr/bin/)

Die Homebrew-Installation von Git hat keinen Vorrang vor der Systemversion (in /usr/bin/)

OS X (oder Xcode) wird mit Git 1.7.irgendwas ausgeliefert, gibt aber nach brew install git(1.8.0) which gitimmer das alte zurück /usr/bin/git.

Das ist, was ich bekomme, wenn ich jetzt $PATH echoe:

/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

Sollten Homebrew-Sachen nicht Vorrang haben?

Außerdem habe ich keine Ahnung, woher das usr/local/git/binam Ende kommt.

Antwort1

Verstanden. Die Antwort steckt in Ihrer Frage; brew installiert git in /usr/local/git/bin(nicht /usr/local/bin), aber da das in Ihrem Pfad nachher kommt /usr/bin, erhalten Sie das zuerst. Mein Kommentar für which -a githätte Sie in diese Richtung weisen sollen.

Antwort2

Ich bin auch auf dieses Problem gestoßen.

Wenn Sie Git nach der Installation über Homebrew ausführen, brew doctorerhalten Sie eine Warnung, dass das System, wie Joe oben erwähnt hat, das alte Git ausführt, da dessen Installationsort an erster Stelle steht.

Aber in der gleichen Warnung gibt Homebrew den Code zur Behebung des Problems an:

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

Antwort3

Es gehört zu meinen Unix-Gewohnheiten, ein ~/binVerzeichnis zu haben, das ich an den Anfang meines setze PATH. Dies ist einer der ersten Teile in meinem .bashrc:

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

Wenn das vorhanden ist, können Sie selektiv nur die von Homebrew verwaltete Version gitvor der Systemversion vorziehen (anstattjedenHomebrew-verwaltete Binärdatei) und nur für Ihre Shell-Sitzungen (anstattalleProgramme, die von überall aus gestartet werden können (einschließlich GUI-Programme), ist so einfach wie das Erstellen eines symbolischen Links:

ln -s /usr/local/bin/git ~/bin/git

verwandte Informationen