Sudo: npm: команда не найдена

Я пытаюсь обновить до последней версии узла. Я следую инструкциям на http://davidwalsh.name/upgrade-nodejs

Но когда я это сделаю:

sudo npm install -g n

Я получаю ошибку:

sudo: npm: command not found

npm работает без sudo. Когда я делаю:

whereis node

я вижу:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node

Продолжительность:

which npm

Показывает:

/usr/local/node/bin/npm

Я попробовал решение в qaru.site/info/33239/...

Но я все еще получаю ту же ошибку. Я также посмотрел на файл /etc/sudoers, и соответствующая строка:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Это выглядит хорошо для меня. Как я могу заставить NPM работать с командой sudo?

Ответ 1

Файл npm должен находиться в /usr/local/bin/npm. Если этого не произошло, установите node.js снова с пакетом на веб-сайте. Это работало в моем случае.

Ответ 2

Мне пришлось делать

sudo apt-get install npm

который работал у меня.

Ответ 3

Для пользователей MAC следующие шаги сработали для меня.

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 

Ответ 4

У меня была та же проблема; вот команды для его исправления:

  • sudo ln -s /usr/local/bin/node /usr/bin/node
  • sudo ln -s /usr/local/lib/node /usr/lib/node
  • sudo ln -s /usr/local/bin/npm /usr/bin/npm
  • sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

Ответ 5

ПРЕДУПРЕЖДЕНИЕ (изменить)

Выполнение chmod 777 - это действительно грязное решение. Попробуйте сначала, по одному, и остановитесь, когда заработаете:

  • $ sudo chmod -R 777 /usr/local/lib/node_modules/npm
  • $ sudo chmod -R 777 /usr/local/lib/node_modules
  • $ sudo chmod g+w /usr/local/lib
  • $ sudo chmod g+rwx /usr/local/lib

$ brew postinstall node - единственная установочная часть, где я получаю проблему

Permission denied - /usr/local/lib/node_modules/npm/.github

Итак, я

// !! READ EDIT ABOVE BEFORE RUNNING THIS CODE !!
$ sudo chmod -R 777 /usr/local/lib
$ brew postinstall node

и альта, npm теперь связана

$ npm -v
3.10.10

Extra

Если вы использовали -R 777 в lib, моя рекомендация состояла в том, чтобы установить вложенные файлы и каталоги по умолчанию:

  • $find /usr/local/lib -type f -print -exec chmod 644 {} \;
  • $find /usr/local/lib -type d -print -exec chmod 755 {} \;
  • $chmod /usr/local/lib 755

Ответ 6

Мне нужно было сделать следующее:

  • brew update
  • brew uninstall node
  • Посетить https://nodejs.org/en/ скачать файл
  • Установить загруженный файл

Ответ 7

Для пользователей CentOS это работает для меня:

sudo yum install npm

Ответ 8

Чтобы установить пакеты npm по всему миру с разрешением sudo, /usr/bin/npm должен быть доступен. Если npm существует в каком-либо другом каталоге, создайте мягкую ссылку, например:

sudo ln -s /usr/local/bin/npm /usr/bin/npm

Он работает на Fedora 25, node8.0.0 и npm5.0.0

Ответ 9

Для debian после установки node введите

curl -k -O -L https://npmjs.org/install.sh    
ln -s /usr/bin/nodejs /usr/bin/node  
sh install.sh

Ответ 10

Если вы установили node/npm с nvm, файл конфигурации nvm должен быть запущен, прежде чем вы сможете использовать любой пакет.

Обычно это находится в ~/.nvm/nvm.sh.

Чтобы запустить это автоматически, включите:

source ~/.nvm/nvm.sh

в файле .bash_profile для вашего пользователя

Если вы хотите использовать sudo с этим пользователем, обязательно включите параметр -i, чтобы сделать sudo установленным пользователем. например,

sudo -iu jenkins npm install grunt-cli

Ответ 11

Я решил эту проблему на

apt-get install npm2deb

Ответ 12

просто переустановите.

В RHEL, CentOS и Fedora

sudo yum remove nodejs npm
sudo dnf remove nodejs npm   [On Fedora 22+ versions]

затем

yum -y install nodejs npm
dnf -y install nodejs npm   [On Fedora 22+ versions]

легко!.. оба node и npm теперь работают как шарм!

Ответ 13

У меня была такая же проблема, причина этого в том, что npm менеджер пакетов не был установлен при установке node. Это было вызвано следующей ошибкой: В процессе установки есть шаг под названием "Пользовательская настройка", здесь вы можете выбрать один из следующих вариантов: 1) node.js runtime (по умолчанию это выбрано). 2) менеджер пакетов npm 3) Быстрые ссылки на документацию. 4) Добавить в путь. Если вы продолжаете, так как это менеджер пакетов npm, он не будет установлен, и, следовательно, вы получите сообщение об ошибке.

Решение: Выберите диспетчер пакетов npm, когда вы получите эти параметры. Это сработало для меня.

Ответ 14

Я получаю то же самое в CentOS.

which npm дает:

$ which npm

/usr/local/bin/npm

где

$ sudo which npm

which: no npm in (/sbin:/bin:/usr/sbin:/usr/bin)

Я получаю то же самое для Node.

Таким образом, это, вероятно, проблема, когда root не проверяет /usr/local/bin для любых двоичных файлов.

Ответ 15

Если вы загрузили пакет node и извлекли где-то вроде /opt, вы можете просто создать символическую ссылку внутри /usr/local/bin.

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

Ответ 16

Удалите Node полностью:

  brew uninstall --force node

Установите еще раз:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

Ответ 17

У меня тоже была такая же проблема в Хомстеде, и я пробовал много способов. Я пробовал с

sudo apt-get установить nodejs

Я получаю следующую ошибку:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Наконец я попробовал с

sudo apt-get dist-upgrade

Это работало нормально.

[email protected]:/usr/local/bin# npm -v
3.10.10

[email protected]:/usr/local/bin# node -v
v6.13.0

Ответ 18

Мое решение:

sudo -E env "PATH=$PATH" n stable

У меня отлично работает.

Нашел здесь: fooobar.com/questions/56864/...

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

Ответ 19

Инструкции по установке Node.js через диспетчер пакетов для:

  • Arch Linux
  • Debian и дистрибутивы Linux на базе Ubuntu
  • Предприятие Linux и Fedora
  • FreeBSD и OpenBSD
  • Gentoo
  • NetBSD
  • openSUSE и SLE
  • OSX
  • SmartOS и подсветка
  • Void Linux
  • для Windows

Ответ 20

Добавлен двоичный путь npm к пути sudo с использованием visudo и редактирования "secure_path"

Теперь "sudo npm" работает

Ответ 21

В случае, если это может быть полезно для тех, кто использует пакеты rh-*, это работает для меня:

sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm

Ответ 22

В Ubuntu 18.04 это сработало для меня:

sudo apt install nodejs
sudo apt install npm

Ответ 24

Установить node.js и просто запустить

npm install -g bower 

из вашего проекта dir