2 votos

actualizado git local en Lion, ¿ahora qué?

Reformateé mi máquina con Lion que tenía esta versión por defecto de git:

$ git --version
git version 1.7.7.5 (Apple Git-26)

Decidí actualizar git así que lo hice:

$ brew install git
==> Downloading http://git-core.googlecode.com/files/git-1.7.10.4.tar.gz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/git/1.7.10.4 CC=/usr/bin/clang CFLAGS=-Os -w -pipe -    march=native -Qunused-arguments LDFLAGS= install
==> make CC=/usr/bin/clang CFLAGS=-Os -w -pipe -march=native -Qunused-arguments LDFLAGS=
==> make clean 
==> Downloading http://git-core.googlecode.com/files/git-manpages-1.7.10.4.tar.gz
######################################################################## 100.0%
==> Downloading http://git-core.googlecode.com/files/git-htmldocs-1.7.10.4.tar.gz
######################################################################## 100.0%
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib
==> Summary
/usr/local/Cellar/git/1.7.10.4: 1173 files, 23M, built in 39 seconds

Desafortunadamente, git no se actualizó:

$ git --version
git version 1.7.7.5 (Apple Git-26)

Soy nuevo en la línea de Terminal/Comando y en todas las cosas de Unix, así que no estoy seguro de cuál es mi próximo movimiento. Supongo que "Caveats" me está diciendo que debo hacer algo porque este git actualizado no está donde está el git por defecto. Entonces, ¿necesito añadir estas rutas a mi PATH? Si es así, ¿cómo lo hago? Si no, ¿qué hago ahora?

Gracias

5voto

user11355 Puntos 442

Eso es correcto. /usr/local/bin o su equivalente debe ser añadido a su PATH porque ahí es donde brew instala el software. Además, tendrá que ser adelante de cualquier directorio en el que se encuentre el Git por defecto. (Nota: Voy a ir despacio con esto, sólo para facilitarte un poco el mundo Unix).

Antes de hacer un movimiento para arreglar el PATH, haga esto en la Terminal:

which git

y ver en qué directorio se encuentra actualmente Git. Ese es el directorio que tienes que vencer. También escribe esto:

echo $SHELL

Espero que veas '/bin/bash', ya que eso es lo que voy a suponer que estás usando. Si no es así, háganoslo saber.

Lo más fácil de probar es simplemente poner /usr/local/bin en la parte delantera de la Senda. Esto se hace tradicionalmente en un archivo de configuración para su Shell que se ejecuta cuando usted enciende una Terminal. Para el bash Shell, es ~/.bash_profile (donde ~ es el apodo de su directorio personal). Adelante, crea un archivo de texto allí si no lo tienes ya, y añade esta línea:

export PATH=/usr/local/bin:$PATH

(Nota: utilice un editor de texto adecuado, como TextWrangler o Xcode o su editor de programación favorito, en lugar de TextEdit, al que le gusta guardar archivos RTF).

El ':' separa los directorios en la variable PATH, y $PATH se expande hasta el actual (antes de la asignación) definición de esta variable de entorno. En resumen, este comando antepone /usr/local/bin a su PATH, entonces exportaciones el PATH actualizado a su entorno, para que otros programas ejecutados desde el Shell puedan ver y utilizar el PATH actualizado. (Nota: Está bien si /usr/local/bin viene también más tarde en el PATH. Puede eliminar la segunda copia, y establecer el PATH al valor completamente doctorado, si decide que quiere mantener /usr/local/bin por delante).

Guarde ese archivo, salga de Terminal y reinícielo. Cree una nueva ventana de Terminal y escriba:

echo $PATH

Ahora debería ver /usr/local/bin en la parte delantera. Corre git --version y asegúrate de que ves la versión que esperas.

Una vez hecho esto, ¿qué podría salir mal? Bueno, en algunos casos podrías haber instalado algo en /usr/local/bin que no es tan estable como las aplicaciones estándar del sistema, por lo que es posible que no quiera todo en ese directorio para que tenga prioridad sobre el PATH estándar. Si esto le sucede, una solución común es hacer un nuevo directorio que sólo tenga referencias al específico programas que desea que aparezcan antes que los programas estándar del sistema en la búsqueda:

  1. crear un nuevo directorio, por ejemplo ~/bin
  2. poner este directorio al frente de PATH en lugar de /usr/local/bin
  3. en el Terminal, ejecute ln -s /usr/local/bin/git ~/bin/git para crear un enlace simbólico llamado git en el nuevo directorio, apuntando al git que brew instalado. (Los enlaces simbólicos son similares a los "accesos directos" en el mundo de Windows, si estás familiarizado con ellos).
  4. salga y reinicie el Terminal, y compruebe que se selecciona el programa correcto cuando se ejecuta git .

También debo señalar que hay una forma más avanzada, específica para Mac, de configurar el PATH. Implica la creación/alteración de su environment.plist configuración. Para ello, primero hay que averiguar la completo camino (es decir, que no implica definiciones previas de $PATH ) que necesitas:

echo $PATH

Después de eso, ejecuta esto:

defaults write ~/.MacOSX/environment PATH ...

donde ... se sustituye por la ruta que quieras que sea la predeterminada en todo el sistema. Ponga su directorio delante ( /usr/local/bin o lo que sea), no olvides el ':', y copia/pega el valor de PATH que se ha hecho eco al final. Luego, para asegurarte de que la configuración de tu Mac y la de tu Shell están en la misma página, ve a ~/.bash_profile, y donde tenías previamente el export PATH línea, haga esto en su lugar:

export PATH=`defaults read ~/.MacOSX/environment.plist PATH`

Así es como configuro el PATH en mi Mac.

¿Por qué pasar por todos estos problemas? Porque, a diferencia del PATH definido en ~/.bash_profile Este valor predeterminado puede ser visto por las aplicaciones GUI que se lanzan con el Finder o Spotlight. Sin embargo, para las operaciones de Git que ejecutarás desde la línea de comandos, no lo necesitarás. Además, a muchas aplicaciones GUI que usan Git también se les puede dar la ruta absoluta ( /usr/local/bin/git ) al programa Git, en caso de que necesiten ejecutarlo. Así que puede que te salgas con la tuya sin tener que pasar por este par de aros extra. Pero ahora ya sabes el truco, por si acaso es necesario más adelante.

¡Feliz pirateo de Git!

3voto

qedi Puntos 1333

Yo tenía exactamente el mismo problema. Owen tenía la respuesta general más completa.

Dicho esto, he investigado un poco más y he encontrado lo que creo que es una forma mucho más fácil.

environment.plist construye la ruta que utiliza a partir de /private/etc/paths

Por lo tanto, en el terminal sólo tienes que escribir sudo nano /private/etc/paths e introduce tu contraseña de root.

Una vez que estés en nano, probablemente verás /usr/bin primero, y /usr/local/bin último. (Nota: ¡Todo tiene que estar en una línea separada!) Todo lo que hice fue escribir /usr/local/bin primero y luego quitarlo de la última línea.

Salga del terminal, luego cierre la sesión y vuelva a entrar.

Vuelve a entrar en el terminal y escribe git --version y debería ser de oro.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: