Я установил node и npm, используя приведенные здесь инструкции
Я смог успешно использовать узел. Однако, когда я пытаюсь установить модуль узла «Потрясающий», я получаю следующую ошибку:
$npm install formidable
bash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory
Когда я делаю, which npm
я получаю следующий вывод:
$which npm
/usr/local/bin/npm
Я понятия не имею, что здесь не так с npm - есть идеи, как мне это исправить?
/usr/local/bin/
. Пакеты, которые вы использовали в инструкциях, на которые вы ссылались, не делают этого. Я думаю, что вы также установили другой Node из источника. Пожалуйста, расскажите всю историю.$sudo apt-get remove --purge nodejs npm
но это не сработало.node --version
после установки 0.8.18 все равно показывал 0.8.14. Итак, то, что я сделал, это следовал за сообщением, которое я не могу найти сейчас - оно в основном проинструктировано,which node
а затемrm -r /usr/local/bin/...
- в основном, некоторые связанные с узлами файлы в этом каталоге. Теперь, после этого, я переустановил узел, и это была обновленная версия. Работает нормально, но npm - нет.Ответы:
Используя подсказку @gertvdijk, я удалил NPM, используя скрипт:
(который можно найти здесь )
Даже после выполнения вышесказанного я получил еще одну ошибку:
Итак, я запустился
hash -r
в терминале (согласно инструкциям, приведенным в разделе « NPM не запускается после обновления» ) и вуаля - все заработало. NPM теперь работает!источник
hash
, которое можно просто использовать для указания на другой узел / npm (что, если я хочу работать с более чем одной версией узла?)hash
делает !?Ubuntu и некоторые дистрибутивы Linux устанавливают интерпретатор узла как
/usr/bin/nodejs
, а не как/usr/local/bin/node
.Вы можете решить эту проблему, установив
nodejs-legacy
пакет, который создает символическую ссылку из/usr/bin/nodejs
в/usr/bin/node
.Решение:
Ссылки: пакет nodejs-legacy
источник
nodejs-legacy
больше не существует.Похоже, что вы установили другую версию Node из исходного кода ранее. На это указывает
/usr/local/bin
путь, по которому он сейчас установлен.which npm
теперь указывается в/usr/bin
качестве пути установки.В общем случае вам никогда не придется устанавливать пакеты из исходного кода. И если вы это сделаете, пожалуйста, помните о последствиях, так как вы переопределяете управление пакетами здесь, и оно может запутаться.
источник