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 снова с пакетом на их сайт. В моем случае это сработало.
для пользователей 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
Я должен был сделать следующее:
brew update
brew uninstall node
- посетить https://nodejs.org/en/ загрузите файл
- установите скачанный файл
чтобы установить пакеты 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
инструкции по установке узлов.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