Pergunta: A ordem de precedência no PATH influencia o Ubuntu na escolha de qual programa usar?
Mais detalhes:
Eu uso .bashrc
para declarar PATH de ambiente privado, instalei o MSP430-gcc dos repositórios do Ubuntu que ficam em/usr/local/bin e compilei meu próprio MSP430-gcc e coloquei-o 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 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
Consertar: Tive que alterar a precedência do ambiente PATH editando .bashrc e alterar a precedência e colocar meu caminho personalizado antes do PATH do sistema conforme 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: Este problema já foi relatado (PATH aparece primeiro e tem maior precedência (da esquerda para a direita):
Responder1
Para mim, isso é lógico: o $PATH
é pesquisado do início ao fim e o primeiro executável correspondente será executado.
Veja as seguintes perguntas e respostas sobre o mesmo tópico:
Ordem dos arquivos a serem executados no Linux e como alterá-la
- Como o Unix procura arquivos executáveis?
Então, primeiro encontrado, primeiro usado!