it-roy-ru.com

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

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

Но, когда я делаю:

Sudo npm install -g n

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

Sudo: npm: command not found

нпм работает без судо. Когда я делаю:

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?

115
Mark

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

77
inga

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

Sudo apt-get install npm

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

113
Velocibadgery

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

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 
64
Gao

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

  • 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
43
Vasanth Umapathy

ВНИМАНИЕ (редактировать)

Выполнение 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 для 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
19
Jacksonkr

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

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

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

Sudo yum install npm
10
江南消夏

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

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

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

6
Prakash Ramasamy

Для Debian после установки узла Введите

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

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

На 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]

просто! .. и узел, и npm теперь работают как шарм!

3
Brian Sanchez

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

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

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

source ~/.nvm/nvm.sh

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

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

Sudo -iu jenkins npm install grunt-cli
2
Garreth McDaid

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

apt-get install npm2deb
1
Игорь Демянюк

У меня была такая же проблема, причина в том, что при установке узла не был установлен менеджер пакетов npm. Это было вызвано из-за следующей ошибки: В процессе установки есть шаг, называемый «Выборочная установка», здесь у вас есть возможность выбрать один из следующих вариантов: 1) Среда выполнения Node.js (Это выбран по умолчанию). 2) Менеджер пакетов npm 3) Ссылки на документацию в Интернете. 4) Добавить в путь. Если вы продолжите в том же духе, менеджер пакетов npm не будет установлен и, следовательно, вы получите ошибку. 

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

1
Saurabh Shetty

Я получаю то же самое на 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 на наличие двоичных файлов. 

1
user2854314

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

  brew uninstall --force node

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

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

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

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

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
0
Thowfeek

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

Sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm
0
Lionel T

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

  • Arch Linux
  • Дистрибутивы Linux на основе Debian и Ubuntu
  • Корпоративный Linux и Fedora
  • FreeBSD и OpenBSD
  • Gentoo
  • NetBSD
  • openSUSE и SLE
  • OSX
  • SmartOS и иллюминаты
  • Void Linux
  • Windows
0
shilovk

Мое решение:

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

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

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

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

0
xargr

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

Сейчас работает "Sudo npm"

0
mauricio777