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

Я пытаюсь обновить до последней версии node. Я следую инструкциям в 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

я попробовал решение в https://stackoverflow.com/a/5062718/1246159

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

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

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

22 ответов


файл npm должен быть в /usr/local/bin/npm. Если его там нет, установите node.js снова с пакетом на их сайт. В моем случае это сработало.


Я должен был сделать

sudo apt-get install npm

это сработало для меня.


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

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

у меня была та же проблема; вот команды, чтобы исправить это:

  • 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

предупреждение ("редактирование")

делать 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 -v
3.10.10

дополнительно

если вы используете -R 777 on 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

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

  1. brew update
  2. brew uninstall node
  3. посетить https://nodejs.org/en/ загрузите файл
  4. установите скачанный файл

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

sudo yum install npm

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

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

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


для debian после установки узла enter

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

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

на 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 теперь работают как шарм!


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

это обычно встречается в~/.nvm/nvm.sh.

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

source ~/.nvm/nvm.sh

в рамках .файл bash_profile для

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

sudo -iu jenkins npm install grunt-cli

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

решение: При получении этих параметров выберите Диспетчер пакетов npm. Это сработало для меня.


Я же на CentOS.

which npm выдает:

$ which npm

/usr/local/bin/npm

здесь

$ sudo which npm

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

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

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


Если вы загрузили пакет узла и извлекли где-то вроде /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

Я решил эту проблему с помощью

apt-get install npm2deb

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

  • Arch Linux
  • дистрибутивы Linux на основе Debian и Ubuntu
  • Enterprise Linux и Fedora
  • FreeBSD и OpenBSD
  • Gentoo
  • NetBSD
  • openSUSE и SLE
  • OSX
  • SmartOS и illumos
  • Void Linux
  • Windows

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

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


удалить узел:

  brew uninstall --force node

снова установите:

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

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

sudo apt-get install 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

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

root@homestead:/usr/local/bin# npm -v
3.10.10

root@homestead:/usr/local/bin# node -v
v6.13.0

мое решение:

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

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

нашел его здесь:https://stackoverflow.com/a/29400598/861615

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


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

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

узел Installl.js & просто запустить

npm install -g bower 

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