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

Я установил node и npm, используя предоставленные инструкции здесь

Я смог успешно использовать node. Однако, когда я пытаюсь установить модуль узла "Грозный", я получаю следующую ошибку:

$npm install formidablebash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory

Когда я делаю which npm Я получаю следующий результат:

$which npm/usr/local/bin/npm

Я понятия не имею, что здесь не так с npm - есть идеи, как я могу это исправить?

Воспользовавшись подсказкой @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 Не Будет Запускаться После Обновления) и вуаля - это сработало. НПМ теперь работает!

Ubuntu и некоторые дистрибутивы Linux устанавливают интерпретатор узла как /usr/bin/nodejs, и не /usr/local/bin/node.

Вы можете решить эту проблему, установив nodejs-legacy пакет, который создает символическую ссылку из /usr/bin/nodejs к /usr/bin/node.

Решение:

sudo apt-get install nodejs-legacy

Рекомендации:nodejs-устаревший пакет

шаг 1: запустите npm -vo/p : Ошибка: bash: /usr/local/bin/npm: Нет такого файла или каталога

шаг 2: запустите which npmo/p: /usr/bin/npm

шаг 3: запустите hash -r затем бегите npm -vо/п : 3.5.2

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

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

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

Добро пожаловать в Ask Ubuntu! Я вижу, вы установили узел в /usr/local/bin/. [Посылки](https://launchpad.net /~крис-леа/+archive/node.js /+пакеты?field.name_filter=&field.status_filter=published&field.series_filter=quantal), как вы использовали в инструкциях, на которые вы ссылались, не делайте этого. Я думаю, вы также установили другой узел из исходного кода. Пожалуйста, расскажите всю историю целиком.

@gertvdijk Ну, изначально был установлен узел 0.8.14. Я хотел обновить это до версии 0.8.18. Затем я запустил $sudo apt-get remove --purge nodejs npm", но это не сработало. node --version после установки 0.8.18 по-прежнему показывал 0.8.14. Итак, что я сделал, так это последовал за сообщением, которое я сейчас не могу найти - в нем в основном указывалось, как выполнить "какой узел", за которым следует "rm -r / usr / local / bin /... - в основном некоторые файлы, связанные с узлом, в этом каталоге. Теперь, после этого, я переустановил node, и это была обновленная версия. Он работает нормально, но npm - нет.

Да, это то, что происходит, когда вы устанавливаете из исходного кода. Это приведет в замешательство ваше управление пакетами и вас как пользователя. Пожалуйста, устанавливайте программное обеспечение только в виде пакетов, если вы не знаете, что делаете. Используйте инструкции по удалению вместе со сценариями, которые вы использовали для установки этой более ранней версии, чтобы правильно удалить ее. И, пожалуйста, ** отредактируйте ** свой вопрос, чтобы предоставить дополнительную информацию. Это сайт вопросов и ответов, а не дискуссионный форум, понимаете? :slight_smile:

@gertvdijk Я нашел сообщение, в котором указывалось вручную удалить файлы - Uninstall Node.JS using Linux command line? - Stack Overflow . Путь здесь - /usr/bin/node

Пометка для себя, когда я вернусь сюда через неделю. Закройте терминал и снова откройте его