«Ошибка такого файла или каталога» при использовании npm

18

Я установил узел и 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 здесь - любая идея о том, как я могу это исправить?

    
задан user109187 03.02.2013 в 17:45
источник

3 ответа

32

Принимая подсказку @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 теперь работает!

    
ответ дан user109187 04.02.2013 в 15:28
источник
10

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

    
ответ дан Pac 11.05.2014 в 15:49
2

Похоже, что вы установили еще одну версию узла из источника некоторое время ранее. Это указывает путь /usr/local/bin , где он теперь установлен.

  1. Удалите тот, который вы установили из источника. См. Инструкции, полученные с источником о том, как это сделать. Не существует единого способа удаления установленных скриптов программного обеспечения, которые не работают с управлением пакетами вашей системы.
  2. Установить пакеты с указанными в инструкциях, которые вы указали в своем вопросе.
  3. Убедитесь, что which npm теперь перечисляет /usr/bin как путь установки.

В общем, вам никогда не придется устанавливать пакеты из исходного кода. И если вы это сделаете, помните о последствиях, поскольку вы переопределяете управление пакетами здесь, и это смутит его.

    
ответ дан gertvdijk 04.02.2013 в 15:12