
Я пытаюсь получитьнпмдля работы. В процессе у меня, похоже, установлено две версии: поврежденная, установленная в ~/bin, и другая, которую я просто скомпилировал и запустил, make install
чтобы поместить ее в /usr/local/bin/npm
.
Итак, я переместил всю папку ~/bin в ~/old/bin... но при запуске npm
система все равно ищет в ~/bin:
$ which npm
/usr/local/bin/npm
$ alias npm
-bash: alias: npm: not found
$ npm
-bash: /home/ubuntu/bin/npm: No such file or directory
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$
Что заставляет Ubuntu искать npm в ~/bin/npm
? Я использую Ubuntu 11.10. Я не знаю, относится ли вопрос к Ubuntu или нет, его можно перенести в askubuntu, если нужно.
Я вижу ~/bin в PATH, но насколько я понимаю, это означает только то, что если бы npm присутствовал в ~/bin, то он бы его использовал... но почему bash настаивает на поиске именно там? Почему он не находит /usr/local/bin/npm
, хотя which
команда его находит?
решение1
Ранее известное местоположение исполняемого файла, вероятно, хэшируется оболочкой. Сброс кэша оболочки с помощью hash -r
должен исправить проблему.
Если вы не хотите сбрасывать весь кэш, вы можете удалить отдельную запись для npm
использования hash -d npm
.