Я установил узел и npm использование инструкций, предоставленных здесь
Я смог использовать узел успешно. Однако, поскольку я пытаюсь установить "Солидный" модуль узла, я получаю следующую ошибку:
$npm install formidable
bash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory
Когда я делаю a which npm
Я получаю следующий вывод:
$which npm
/usr/local/bin/npm
У меня нет подсказки обо что не так с npm здесь - какая-либо идея о том, как я могу зафиксировать это?
Похоже, что вы установили другую версию Node из исходного кода ранее. На это указывает путь /usr/local/bin
, где он, кажется, установлен сейчас.
which npm
теперь указывает /usr/bin
в качестве пути установки. В общем случае вам никогда не придется устанавливать пакеты из исходного кода. И если вы это сделаете, пожалуйста, помните о последствиях, так как вы переопределяете управление пакетами здесь, и оно может запутаться.
Используя подсказку @gertvdijk, я удалил NPM, используя скрипт:
rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
(который можно найти здесь )
Даже после выполнения вышеизложенного, я получил еще одну ошибку:
$ npm install formidable
bash: /usr/local/bin/npm: No such file or directory
Итак, я запустил hash -r
в терминале (согласно инструкциям из NPM не будет работать после обновления ) и вуаля - все заработало. NPM теперь работает!
Ubuntu и некоторые дистрибутивы Linux устанавливают интерпретатор узла как /usr/bin/nodejs
, а не /usr/local/bin/node
.
Вы можете решить эту проблему, установив пакет nodejs-legacy
, который создает символическую ссылку от /usr/bin/nodejs
до /usr/bin/node
.
Решение:
sudo apt-get install nodejs-legacy
Ссылки: nodejs-legacy package
шаг 1: запустить npm -v
o/p: Ошибка: bash: /usr/local/bin/npm: Нет такого файла или каталога
Шаг 2: запустить какой npm
o/p: /usr/bin/npm
шаг 3: запустите hash -r
, затем запустите npm -v
о/п: 3.5.2