¿El orden de precedencia con la variable ENV cambia qué programa usar?

¿El orden de precedencia con la variable ENV cambia qué programa usar?

Pregunta: ¿El orden de precedencia en la RUTA influye en Ubuntu para elegir qué programa usar?

Más detalles: Lo uso .bashrcpara declarar la RUTA de entorno privado, instalé MSP430-gcc desde repositorios de ubuntu que permanece en /usr/local/bin y compilé mi propio MSP430-gcc y lo coloqué en /opt/compilers/msp430-gcc-4.7.3:

#msp430-gcc 4.7.3 in .bashrc
export PATH=$PATH:/opt/compilers/mspgcc-4.7.3/bin
#the corresponding echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/tools/MSP430Flasher_1.3.0:/opt/compilers/Sourcery_G++_Lite/bin:/opt/compilers/mspgcc-4.7.3/bin

¿Cuando intento preguntarle a Ubuntu qué MSP430-gcc utiliza? Solía ​​responder: /opt/compilers/mspgcc-4.7.3/bin.

Pero ahora responde lo siguiente:

$which msp430-gcc
/usr/bin/msp430-gcc  #the default installation from Ubuntu repo

Problema: Noté que la configuración anterior no funcionaba después de una actualización. (puede o no ser causado por una actualización) Estoy usando Ubuntu 14.04 LTS y actualizado en fecha: 16 de diciembre de 2014

Arreglar: Tuve que cambiar la precedencia de la RUTA del entorno editando .bashrc y cambiar la precedencia y poner mi ruta personalizada antes de la RUTA del sistema como se muestra a continuación.

#msp430-gcc 4.7.3 in .bashrc
export PATH=/opt/compilers/mspgcc-4.7.3/bin:$PATH (note the difference in locating :$PATH)

#echo $PATH
/opt/compilers/mspgcc-4.7.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/tools/MSP430Flasher_1.3.0:/opt/compilers/Sourcery_G++_Lite/bin

La historia detrás: Este problema ya se ha informado (la RUTA que aparece primero tiene mayor prioridad (de izquierda a derecha):

Respuesta1

Para mí, esto es lógico: $PATHse busca desde el principio hasta el final y se ejecutará el primer ejecutable que coincida.

Consulte las siguientes preguntas y respuestas sobre el mismo tema:

Entonces, ¡primero encontrado, primero usado!

información relacionada