Не удается установить npm - Невозможно исправить проблемы, у вас есть поврежденные пакеты?


27

Я пытаюсь обновить мои nodejs до 7.6, но не удалось. Теперь у меня есть новая проблема после переустановки узла 6.10:

$ sudo apt-get purge nodejs npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'npm' is not installed, so not removed
The following packages were automatically installed and are no longer required:
  linux-headers-4.8.0-40 linux-headers-4.8.0-40-generic linux-image-4.8.0-40-generic linux-image-extra-4.8.0-40-generic
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED
  nodejs*
0 to upgrade, 0 to newly install, 1 to remove and 53 not to upgrade.
After this operation, 51.7 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 278133 files and directories currently installed.)
Removing nodejs (6.9.5-1nodesource1~yakkety1) ...
Processing triggers for man-db (2.7.5-1) ...
(Reading database ... 274476 files and directories currently installed.)
Removing nodejs (6.9.5-1nodesource1~yakkety1) ...
Purging configuration files for nodejs (6.9.5-1nodesource1~yakkety1) ...
dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules' not empty so not removed

Почему это говорит Package 'npm' is not installed, so not removed? я использую npm для установки многих узловых пакетов для моих проектов !!

Я проигнорировал ошибку и продолжил установку узла 7.6:

$ curl -sL https://deb.nodesource.com/setup_7.6 | sudo -E bash - 
bash: line 1: html: No such file or directory
bash: line 2: syntax error near unexpected token `<'
'ash: line 2: `<head><title>404 Not Found</title></head>

Поэтому я вернулся к узлу 6.x. Но я не могу установить npm больше:

$ sudo apt-get install npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

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.

Любые идеи?


2
пожалуйста попробуйте это sudo apt install -f, затем попробуйте установить снова!
Джордж Удосен

Ответы:


41

У меня была такая же проблема с npm, и мне пришлось установить следующие пакеты по порядку:

sudo apt install libssl1.0-dev
sudo apt install nodejs-dev
sudo apt install node-gyp
sudo apt install npm

Надеюсь это поможет


1
Я боролся с этим пару часов, и это сработало как шарм. Спасибо!
desveladisimo

(На Kubuntu 18.04) Ранее я установил libssl-dev, который, как оказалось, соответствует libssl1.1, но npm, очевидно, требует 1.0. Мне пришлось удалить libssl-dev и заменить его на libssl1.0-dev, и тогда все работало нормально. Ошибки apt не помогли определить, что было не так, поэтому ваш ответ был спасителем.
Ричард Хуссонг

Да! Спасибо! (Ubuntu 18.04.3 LTS)
Тони Хомедес и Саун

Большое спасибо, это помогает мне
Muthusamy

34

У меня была такая же проблема с npm.

Я предлагаю вам установить aptitude, который поможет вам разрешить конфликты

sudo apt install aptitude

затем установите пакет с помощью aptitude

sudo aptitude install npm

1
Лучшее решение должно попробовать, если вы получаете неудовлетворенную ошибку зависимости
Rj_Innocent_Coder

Действительно здорово иметь это. Это решило проблему
Джерричайян

У меня была проблема с зависимостью. Единственное решение, которое я мог найти. Спасибо.
Карджедавпалаа
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.