ENV 변수의 우선순위에 따라 사용할 프로그램이 변경됩니까?

ENV 변수의 우선순위에 따라 사용할 프로그램이 변경됩니까?

질문: PATH의 우선 순위가 Ubuntu가 사용할 프로그램을 선택하는 데 영향을 줍니까?

자세한 내용은: 나는 사용한다.bashrc . /usr/local/bin에 있는 우분투 저장소에서 MSP430-gcc를 설치했으며 자체 MSP430-gcc를 컴파일하여 다음 위치에 배치했습니다 /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

Ubuntu에서 어떤 MSP430-gcc를 사용하는지 물어보면 어떻게 되나요? 그것은 다음과 같이 대답하곤 했습니다: /opt/compilers/mspgcc-4.7.3/bin.

그러나 이제는 다음과 같이 대답하고 있습니다.

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

문제: 업데이트 후 위 설정이 작동하지 않는 것으로 나타났습니다. (업데이트로 인해 발생하거나 발생하지 않을 수 있음) 저는 Ubuntu 14.04 LTS를 사용하고 있으며 업데이트 날짜는 2014년 12월 16일입니다.

고치다: .bashrc를 편집하여 환경 PATH의 우선 순위를 변경하고 우선 순위를 변경하고 아래와 같이 시스템 PATH 앞에 사용자 지정 경로를 넣어야 했습니다.

#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

비하인드 스토리: 이 문제는 이미 보고되었습니다(PATH가 처음에 나타나는 경우 우선 순위가 가장 높습니다(왼쪽에서 오른쪽으로).

답변1

나에게 이것은 논리적입니다. $PATH처음부터 끝까지 검색되고 일치하는 첫 번째 실행 파일이 실행됩니다.

동일한 주제에 대한 다음 Q&A를 참조하세요.

그래서, 처음 발견하고, 처음 사용했습니다!

관련 정보