Вопрос: Влияет ли порядок приоритетов в PATH на выбор Ubuntu используемой программы?
Подробнее:
Я использую .bashrc
для объявления частного окружения PATH, я установил MSP430-gcc из репозиториев Ubuntu, который находится в /usr/local/bin, и я скомпилировал свой собственный 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, дата обновления: 16 декабря 2014 г.
Исправить: Мне пришлось изменить приоритет окружения PATH, отредактировав .bashrc и изменив приоритет, а также поместив свой собственный путь перед системным 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
выполняется от начала до конца, и первый соответствующий исполняемый файл будет запущен.
См. следующие вопросы и ответы по той же теме:
Итак, первый найденный, первый использованный!