La instalación de Homebrew de git no tendrá prioridad sobre la versión del sistema (en / usr / bin /)


10

OS X (o Xcode) viene incluido con git 1.7.algo, pero después brew install git(1.8.0), which gitsigue devolviendo lo viejo /usr/bin/git.

Esto es lo que obtengo cuando hago eco de $ PATH en este momento:

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

¿No deberían tener prioridad las cosas de Homebrew?

Además, no tengo idea de dónde usr/local/git/binviene eso al final.


¿Has verificado que git está realmente en / usr / local / bin?
Joe Bane el

Sí. ls /usr/local/binmuestra gitestá ahí. Brew también confirma que está instalado. Incluso ejecuté el desinstalador de git ( brew uninstallusando y usando el que viene con la descarga oficial de git) y redid brew install git. Sigo recibiendo which git = = /usr/bin/git".
o_o_o--

2
Corre which -a gitpara ver si lo está encontrando.
Joe Bane el

Respuestas:


7

Entendido. La respuesta está en tu pregunta; brew instala git en /usr/local/git/bin(no /usr/local/bin) pero como eso está después /usr/binen tu camino, obtienes ese primero. Mi comentario para which -a gitdebería haberte señalado en esta dirección.


1
Corre ls -l /usr/local/bin/gittambién. Apuesto a que es un enlace simbólico a /usr/bin/git.
Joe Bane el

Ah, y /usr/local/git/binparece ser donde el instalador oficial lo pone también.
Joe Bane el

Deberías mirar /etc/pathsy /etc/paths.dtambién.
Joe Bane el

1
He aquí un giro interesante de los acontecimientos: which -a gitdevoluciones /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git. Así que cambié el nombre del viejo git usr/bin/git_oldy lo quité del camino. Ahora git --versiondevuelve 1.8, lo que demuestra que brew instaló git con éxito. - Nuevamente, cambié el nombre /usr/bin/gita su nombre original ... ¡y de repente funciona correctamente! No sé por qué ni cómo, pero renombrar /usr/bin/gity ejecutar git una vez parece haber resuelto el problema. Quién sabe cuál fue la raíz del problema. Gracias de todos modos :)
o_o_o--

Eso es extraño. Me alegro de que estés funcionando ahora al menos.
Joe Bane el

3

También me encontré con este problema.

Después de instalar git a través de homebrew, si ejecuta brew doctor, le advertirá que, como Joe mencionó anteriormente, el sistema está ejecutando el viejo git porque su ubicación de instalación es lo primero.

Pero, en la misma advertencia, homebrew da el código para solucionarlo:

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

0

Ha sido parte de mis hábitos de Unix tener un ~/bindirectorio que puse al comienzo de mi PATH. Este es uno de los primeros bits en mi .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 eso en su lugar, hacer que selectivamente solo el Homebrew administrado gittenga prioridad sobre la versión del sistema (en lugar de todos los binarios administrados por Homebrew), y solo para sus sesiones de shell (en lugar de todos los programas iniciados desde cualquier lugar, incluidos los programas GUI), es tan simple como simularlo:

ln -s /usr/local/bin/git ~/bin/git
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.