A ordem de precedência com a variável ENV muda qual programa usar?

1

Pergunta: A ordem de precedência no PATH influencia o Ubuntu a escolher qual programa usar?

Mais detalhes: Eu uso .bashrc para declarar o env privado PATH, eu instalei o MSP430-gcc dos repositórios do Ubuntu que fica em / usr / local / bin e eu compilei meu próprio MSP430-gcc e coloquei em /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

Quando eu tento perguntar ao Ubuntu qual MSP430-gcc ele usa? Costumava responder: /opt/compilers/mspgcc-4.7.3/bin .

Mas agora está respondendo o seguinte:

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

Problema: Percebi que a configuração acima não estava funcionando após uma atualização. (pode ou não ser causado por uma atualização) Estou usando o Ubuntu 14.04 LTS e atualizado na data: 16 de dezembro de 2014

Correção: Eu tive que mudar a precedência do ambiente PATH editando o .bashrc e alterando a precedência e colocando meu caminho personalizado antes do PATH do sistema como abaixo

#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

A história por trás de: Esse problema já foi relatado (PATH aparece primeiro tem maior precedência (da esquerda para a direita):

por Prabhakaran Kasinathan 17.12.2014 / 10:18

1 resposta

2

Para mim, isso é lógico: o $PATH é pesquisado do começo ao fim e o primeiro executável correspondente será executado.

Veja os seguintes Q & amp; A sobre o mesmo assunto:

Então, primeiro encontrado, usado pela primeira vez!

    
por Radu Rădeanu 17.12.2014 / 11:21