установлены узлы из исходного кода, теперь ошибки

#node.js

#node.js

Вопрос:

Я на ubuntu. Установил узел из репозитория ubuntu, и все было в порядке. Необходим node-waf для одного из модулей, которые я пытался установить, поэтому я установил node на последнюю нестабильную версию из исходного кода. Теперь npm не работает. Хочу вернуться к стабильной версии node 0.4, но когда я удаляю исходную версию, у меня возникают проблемы.

  1. Установленный узел из репозитория ubuntu
  2. Установленный узел из исходного кода
  3. Удаленный узел из исходного кода ( sudo make uninstall , успешно)
  4. Запуск узла приводит к: 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 , но повторное заполнение кэша не ужасно — вы делаете это каждый раз, когда запускаете оболочку — и если есть несколько программ, которые сейчас отсутствуют, удаление их всех избавит вас от удаления их по отдельности.)