3 votos

Paradoja en la comprensión de la "orden de arranque" de los programas de $PATH

De fondo

Este tutorial sobre cómo instalar correctamente git" en OSX 10.8.5, dice:

Para ejecutar la versión más reciente que usted necesita ajustar su shell de la ruta, por lo que /usr/bin/git se ejecuta después de que /usr/local/bin

...

Para agregar en el camino [en mi caso: ~/.bash_profile] similar a la de abajo y mantener lo que ya haber en el camino, cada segmento está separado por dos puntos:

export PATH="/usr/local/bin:/usr/bin/git:/usr/bin:/usr/local/sbin:$PATH"

                                   ^ Focus on this

Así que, mi interpretación es esta:

  • cuando me conecto, BASH dará prioridad a lo que se añade más en el lado derecho de la export PATH=... línea
  • $PATH está en el righter-la mayoría de : delimitado en la entrada de la export PATH=... línea
  • $PATH contiene /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Así que... Si mis suposiciones son correctas, entonces seguramente el tutorial (citado anteriormente) debe haber parecido:

export PATH="$PATH:/usr/bin/git"

En lugar de:

export PATH="/usr/local/bin:/usr/bin/git:/usr/bin:/usr/local/sbin:$PATH"


Mis preguntas son:

Es el tutorial de malo? Si no, entonces ¿cuál de mis suposiciones son erróneas? Si mis suposiciones no está mal Y el tutorial no está mal, por favor explique por qué...


Nota: soy consciente de que esto no puede ser realmente relevantes para OSX 10.8.5, en cuyo caso, por favor, la bandera de off-topic para el adecuado Intercambio de la Pila. Pero AFAIK, mi máquina de Ubuntu ha trabajado bien con ~/.bashrc tener cosas como:

export PATH=$PATH:<myProgram1>:<myProgram2>:...

Así que puede ser que BASH se comporta de forma diferente en OSX? No sé...

6voto

El tutorial está mal redactada, uno debe nunca incluyen un archivo binario (como /usr/bin/git) en PATH, sólo directorios. Una mejor alternativa sería escribir

Para ejecutar la versión más reciente que usted necesita ajustar su shell de la ruta, por lo que /usr/local/bin es buscado antes de /usr/bin

Así que si usted establezca PATH a /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin el manual de la versión instalada de git será recogido de /usr/local/bin.

PS: Manejo de PATH funciona de la misma manera para todos los sistemas basados en Unix, los distintos directorios que se busca en el comando de izquierda a derecha.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: