Ответ 1
Файл npm должен находиться в /usr/local/bin/npm
. Если этого не произошло, установите node.js снова с пакетом на веб-сайте. Это работало в моем случае.
Я пытаюсь обновить до последней версии узла. Я следую инструкциям на 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?
Файл 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 теперь связана
$ 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
Мне нужно было сделать следующее:
brew update
brew uninstall node
Для пользователей 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 после установки node введите
curl -k -O -L https://npmjs.org/install.sh
ln -s /usr/bin/nodejs /usr/bin/node
sh install.sh
Если вы установили node/npm с nvm, файл конфигурации nvm должен быть запущен, прежде чем вы сможете использовать любой пакет.
Обычно это находится в ~/.nvm/nvm.sh.
Чтобы запустить это автоматически, включите:
source ~/.nvm/nvm.sh
в файле .bash_profile для вашего пользователя
Если вы хотите использовать sudo с этим пользователем, обязательно включите параметр -i, чтобы сделать sudo установленным пользователем. например,
sudo -iu jenkins npm install grunt-cli
Я решил эту проблему на
apt-get install npm2deb
просто переустановите.
В 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 теперь работают как шарм!
У меня была такая же проблема, причина этого в том, что npm менеджер пакетов не был установлен при установке node. Это было вызвано следующей ошибкой: В процессе установки есть шаг под названием "Пользовательская настройка", здесь вы можете выбрать один из следующих вариантов: 1) node.js runtime (по умолчанию это выбрано). 2) менеджер пакетов npm 3) Быстрые ссылки на документацию. 4) Добавить в путь. Если вы продолжаете, так как это менеджер пакетов npm, он не будет установлен, и, следовательно, вы получите сообщение об ошибке.
Решение: Выберите диспетчер пакетов npm, когда вы получите эти параметры. Это сработало для меня.
Я получаю то же самое в 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
для любых двоичных файлов.
Если вы загрузили пакет 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
Удалите Node полностью:
brew uninstall --force node
Установите еще раз:
brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'
У меня тоже была такая же проблема в Хомстеде, и я пробовал много способов. Я пробовал с
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
Мое решение:
sudo -E env "PATH=$PATH" n stable
У меня отлично работает.
Нашел здесь: fooobar.com/questions/56864/...
Это происходит потому, что вы изменили каталог глобальных пакетов по умолчанию
Инструкции по установке Node.js через диспетчер пакетов для:
Добавлен двоичный путь npm к пути sudo с использованием visudo и редактирования "secure_path"
Теперь "sudo npm" работает
В случае, если это может быть полезно для тех, кто использует пакеты rh-*
, это работает для меня:
sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm
В Ubuntu 18.04 это сработало для меня:
sudo apt install nodejs
sudo apt install npm
Я мог бы это исправить, установив узел и npm через nvm
Вы можете найти шаги по этой ссылке ниже:
https://linuxize.com/post/how-to-install-node-js-on-ubuntu-18.04/
Установить node.js и просто запустить
npm install -g bower
из вашего проекта dir