не может установить npm на Ubuntu

37

Пытался установить nodejs и npm на Ubuntu 12.04. Я погуглил и сделал это. Теперь я не смог установить npm на машину.

sudo apt-get install npm

Что дает мне это

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: nodejs-dev
       Depends: node-request but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-minimatch but it is not going to be installed
       Depends: node-semver but it is not going to be installed
       Depends: node-ini but it is not going to be installed
       Depends: node-graceful-fs but it is not going to be installed
       Depends: node-abbrev but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-fstream but it is not going to be installed
       Depends: node-rimraf but it is not going to be installed
       Depends: node-tar 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.
user3297351
источник
3
Я думаю, что никто не говорит, но apt-get install npmследует избегать (!). Проверьте, npm -vесть ли прежде, чтобы попытаться установить .... (подробнее читайте ниже в ответе @ MarcoCerpi)
Питер Краусс

Ответы:

35

Похоже, что вы, вероятно, установили pris chris-lea node.js, что нормально. Однако вы не устанавливаете npm из этого ppa, так как это нарушает работу пакетов debian. Вместо этого просто установите nodejs. После того, как он установлен, запустите его, и npm -vвы увидите, что он установлен. Если вы не использовали chris-lea ppa, обновите свой вопрос на веб-странице, которую вы Google погуглили, чтобы узнать, как установить nodejs в Ubuntu.

Марко Чеппи
источник
7
Как он запустит "npm -v", если не сможет установить npm ...?
Мариано Арганьараз
10
У «модерна» apt-get install nodejsтоже npmобновленная установка, поэтому я понимаю, что этого apt-get install npmследует избегать (!).
Питер Краусс
1
См. Stackoverflow.com/a/34244847/287948
Питер Краусс
Я удалил свой PPA и получил `npm: Зависит: node-gyp (> = 0.10.9), но он не будет установлен`
Джонатан
7

Попробуйте установить NodeJs следующим образом:

sudo apt-get install nodejs

Так как NodeJs устанавливает node и npm

Мариано Арганьяраз
источник
2
не работает с 16.04
ZZ 5
npmс этим не установлено ...
Gigiux
1

Я решил эту проблему, следуя этой документации .

Указатели для работы с npm:

mkdir ~/nodejs/ && cd ~/nodejs
sudo apt-get install npm
npm install
npm update

При разработке приложений, если для nodejs нужен какой-то конкретный модуль, запустите

cd ~/nodejs
npm install modulename   #for example sendgrid

Иногда модули необходимо устанавливать глобально; затем используйте

sudo npm install modulename -g"

Чтобы удалить модуль:

cd ~/nodejs
npm uninstall modulename          # if locally installed or 
sudo npm uninstall modulename -g  # if globally installed

npm prune помогает удалить неудовлетворенные зависимости

user3297351
источник
4
Он не может установить npm men, как он мог добраться до пункта 3 ?!
Мариано Арганьараз
0

Проблема в реестре, выполните эту команду,

npm config set registry http://registry.npmjs.org/

Я работаю на этом пути, проверьте, это работает для вас

Джей Патель
источник
4
Как он запустит «npm config ...», если не сможет установить npm ...?
Мариано Арганьараз
Когда он запускает sudo apt-get install npmкоманду, выдают «ошибка неудовлетворенных зависимостей». Я замечаю, что ошибка npm уже установлена, просто нужно установить URL реестра.
Джей Патель
0

Во-первых, вам нужно установить PPA, чтобы получить доступ к его содержимому:

curl -sL https://deb.nodesource.com/setup_9.x | sudo bash -

(Это для версии 9, которая является последней версией на момент написания).

А потом

sudo apt-get install nodejs
Faizan
источник
0

Apt плохо справляется с конфликтами зависимостей, использует snap или aptitude;

sudo aptitude install npm

Мне пришлось нажать «нет» в первом предложенном решении, которое не включало установку npm (это должно быть ошибкой в ​​aptitude), затем второе решение, которое я нажал, yesчтобы проверить, была ли установлена ​​npm:

npm --version

Джонатан
источник
0

Конфликт версий установленного вручную npm, который поставляется с последними nodejs.

Таким образом, вы можете попытаться удалить nodejs, удалить старый npm и снова установить новый nodejs, который поставляется с npm.

Сергей Никищенко
источник
-2

Установка nodejs установит npm, поэтому просто удалите nodejs и переустановите его:

sudo apt-get remove nodejs
Russo
источник