Если у меня есть два исполняемых файла с тем же именем на $PATH, как Ubuntu решает, какой использовать, когда это выполняется в терминале?
Например, моей Ubuntu первоначально установили Python в/usr/bin/python. Недавно, я установил распределение Анакондой Python, которому установили его собственный двоичный файл в/home/karnivaurus/anaconda/bin/python. Затем в моем .bashrc файле я вошел:
export PATH="/home/karnivaurus/anaconda/bin:$PATH"
Таким образом, оба двоичных файла находятся теперь на ПУТИ. Но если я запускаю Python в терминале, он всегда использует исходную установку, а не версию Анаконды. Почему это?
Чтобы оптимизировать поиск команды, удар держит тайник за процесс удара, того, где он нашел файлы. Таким образом, если Вы напечатали python
, и это нашло, что в/usr/bin/, затем изменяя ПУТЬ, чтобы предоставить другому питону ранее на ПУТИ не будет иметь никакого эффекта. Вы должны также дать команду удара:
hash -r
, чтобы забыть припрятавший про запас оптимизированный. См. help hash
. (Конечно, я предполагаю, что Вы перечитываете .bashrc или устанавливаете ПУТЬ явно в Вашей раковине также).