#node.js
#node.js
Вопрос:
Я на ubuntu. Установил узел из репозитория ubuntu, и все было в порядке. Необходим node-waf для одного из модулей, которые я пытался установить, поэтому я установил node на последнюю нестабильную версию из исходного кода. Теперь npm не работает. Хочу вернуться к стабильной версии node 0.4, но когда я удаляю исходную версию, у меня возникают проблемы.
- Установленный узел из репозитория ubuntu
- Установленный узел из исходного кода
- Удаленный узел из исходного кода (
sudo make uninstall
, успешно) - Запуск узла приводит к:
bash: /usr/local/bin/node: No such file or directory
Как я могу заставить его прекратить поиск узла на этом пути? Двоичные файлы узла репозитория Ubuntu все еще существуют /usr/bin/node
. Выполняется
cd /usr/bin ; ./node -v
работает и выдает версию 0.4.12.
Выполняется
cd /usr/bin ; node
ошибки.
Ответ №1:
bash(1)
Оболочка сохранит полный путь к исполняемому файлу при первом поиске по каталогам в переменной PATH
среды. (Он не хочет повторять этот поиск каждый раз, когда вы вводите ls
or cat
, это было бы значительно медленнее, чем просто поиск точного пути в таблице.)
Этот процесс обычно работает без инцидентов — до тех пор, пока вы (повторно) не переместите исполняемый файл между каталогами в PATH
.
У новых оболочек не будет проблем. hash -r
Для удаления всех сопоставлений из встроенной таблицы вам потребуется запустить существующие оболочки. (Ну, вы можете удалить отдельные записи, используя hash -d node
, но повторное заполнение кэша не ужасно — вы делаете это каждый раз, когда запускаете оболочку — и если есть несколько программ, которые сейчас отсутствуют, удаление их всех избавит вас от удаления их по отдельности.)