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

10

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

Das bekomme ich, wenn ich gerade $ PATH wiederhole:

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

Sollte Homebrew-Zeug nicht Vorrang haben?

Ich habe auch keine Ahnung, woher das usr/local/git/binam Ende kommt.

o_o_o--
quelle
Haben Sie überprüft, ob sich git tatsächlich in / usr / local / bin befindet?
Joe Bane
ja. ls /usr/local/binShows gitist da. Brew bestätigt auch, dass es installiert ist. Ich habe sogar das Git-Deinstallationsprogramm (sowohl von brew uninstallals auch unter Verwendung des mit dem offiziellen Git-Download gelieferten) ausgeführt und redidiert brew install git. Ich bekomme immer which git = = /usr/bin/git".
o_o_o--
2
Lauf, um which -a gitzu sehen, ob es überhaupt gefunden wird.
Joe Bane

Antworten:

7

Verstanden. Die Antwort ist in Ihrer Frage; Brew installiert git auf /usr/local/git/bin(nicht /usr/local/bin), aber da dies nach /usr/binIhrem Weg ist, erhalten Sie diesen zuerst. Mein Kommentar für which -a githätte Sie in diese Richtung weisen sollen.

Joe Bane
quelle
1
Lauf ls -l /usr/local/bin/gitauch. Ich wette, es ist eine symbolische Verbindung zu /usr/bin/git.
Joe Bane
Oh, und /usr/local/git/binscheint dort zu sein, wo der offizielle Installer es auch hinstellt.
Joe Bane
Sie sollten schauen , /etc/pathsund /etc/paths.dwie gut.
Joe Bane
1
Hier ist eine interessante Wendung der Ereignisse: which -a gitRückkehr /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git. Also habe ich den alten Idioten umbenannt usr/bin/git_oldund ihn aus dem Weg geräumt. Gibt jetzt git --version1,8 zurück und beweist, dass Brew Git erfolgreich installiert hat. - Wieder habe ich in /usr/bin/gitseinen ursprünglichen Namen umbenannt ... und plötzlich funktioniert es richtig! Ich weiß nicht warum oder wie, aber das Umbenennen /usr/bin/gitund Ausführen von git scheint das Problem einmal gelöst zu haben. Wer weiß, wo die Wurzel des Problems lag.
Trotzdem
Das ist seltsam. Ich bin froh, dass du jetzt zumindest am Laufen bist.
Joe Bane
3

Ich bin auch auf dieses Problem gestoßen.

Wenn Sie git nach der Installation über Homebrew ausführen brew doctor, werden Sie gewarnt, dass das System, wie oben erwähnt, das alte Git ausführt, da der Installationsort an erster Stelle steht.

Aber in der gleichen Warnung gibt Homebrew den Code, um das Problem zu beheben:

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

Es gehört zu meinen Unix-Gewohnheiten, ein ~/binVerzeichnis zu haben, das ich zu Beginn meiner Arbeit erstellt habe PATH. Dies ist eines der ersten Bits 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 dies vorhanden ist, hat es selektiv gitVorrang vor der Systemversion (anstelle jeder von Homebrew verwalteten Binärdatei) und nur für Ihre Shell-Sitzungen (anstelle aller von überall gestarteten Programme, einschließlich GUI-Programme) so einfach wie das Verknüpfen:

ln -s /usr/local/bin/git ~/bin/git
Aristoteles Pagaltzis
quelle