L'installazione homebrew di git non avrà la precedenza sulla versione del sistema (in / usr / bin /)


10

OS X (o Xcode) viene fornito in bundle con git 1.7.qualcosa, ma dopo brew install git(1.8.0), which gitcontinua a restituire il vecchio /usr/bin/git.

Questo è quello che ottengo quando faccio eco $ PATH in questo momento:

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

Le cose di Homebrew non dovrebbero avere la precedenza?

Inoltre, non ho idea da dove usr/local/git/binprovenga alla fine.


Hai verificato che git sia effettivamente in / usr / local / bin?
Joe Bane,

Sì. ls /usr/local/binspettacoli gitè lì. Brew conferma inoltre che è installato. Ho anche eseguito il programma di disinstallazione di git (sia brew uninstallusando sia usando quello fornito con il download ufficiale di git) e redid brew install git. Continuo a ricevere which git = = /usr/bin/git".
o_o_o--

2
Corri which -a gitper vedere se lo sta trovando affatto.
Joe Bane,

Risposte:


7

Fatto. La risposta è nella tua domanda; brew installa git in /usr/local/git/bin(no /usr/local/bin) ma dal momento che è dopo /usr/binnel tuo percorso, ottieni quello per primo. Il mio commento per which -a gitdovrebbe averti indirizzato in questa direzione.


1
Corri ls -l /usr/local/bin/gitanche tu . Scommetto che è un collegamento simbolico a /usr/bin/git.
Joe Bane,

Oh, e /usr/local/git/binsembra essere dove lo dice anche l'installatore ufficiale.
Joe Bane,

Si dovrebbe guardare /etc/pathse /etc/paths.dpure.
Joe Bane,

1
ecco una svolta interessante di eventi: which -a gitritorni /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git. Così ho rinominato il vecchio idiota usr/bin/git_olde l'ho tolto di mezzo. Ora git --versionrestituisce 1.8, dimostrando che brew ha installato git con successo. - Ancora una volta, ho rinominato il /usr/bin/gitsuo nome originale ... e improvvisamente funziona correttamente! Non so perché o come, ma rinominare /usr/bin/gited eseguire git sembra aver risolto il problema. Chissà quale fosse la radice del problema. Grazie comunque :)
o_o_o--

È strano. Sono contento che tu sia attivo e funzionante almeno adesso.
Joe Bane,

3

Ho riscontrato anche questo problema.

Dopo aver installato git tramite homebrew, se esegui brew doctor, ti avviserà che, come ha detto Joe in precedenza, il sistema sta eseguendo il vecchio git perché la sua posizione di installazione viene prima.

Ma, nello stesso avvertimento, homebrew fornisce il codice per risolverlo:

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

0

Fa parte delle mie abitudini Unix avere una ~/bindirectory che ho messo all'inizio della mia PATH. Questo è uno dei primi bit nel mio .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

Con quello in atto, quindi fare in modo selettivo che la sola gestione gestita da Homebrew gitabbia la precedenza sulla versione del sistema (anziché ogni binario gestito da Homebrew), e solo per le sessioni della shell (invece di tutti i programmi avviati da qualsiasi luogo, inclusi i programmi della GUI), è semplice come link simbolico:

ln -s /usr/local/bin/git ~/bin/git
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.