Как разрешить "Следующие пакеты имеют неудовлетворенные зависимости"
Я использовал этот скрипт для установки основного программного обеспечения, но пришлось прервать его из-за низкой скорости интернета. Теперь, когда я нажимаю $ sudo apt-get install npm
, я получаю следующую ошибку
[email protected]:~$ sudo apt-get installed npm
E: Invalid operation installed
[email protected]:~$ 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.
Ответы
Ответ 1
Команда Ubuntu исправляет неудовлетворенные зависимости и разбитые пакеты.
sudo apt-get install -f
со страницы man:
-f, - -f ix-broken Fix; попытайтесь исправить систему со сломанными зависимостями. Эта опция при использовании с установкой/удалением может опускать любые пакеты, позволяющие APT выводить вероятное решение. Если пакеты указаны, они должны полностью исправить проблему. Опция иногда необходима при запуске APT в первый раз; Сам APT не разрешает существование в системе разбитых пакетов. Возможно, структура структуры системы может быть настолько коррумпирована, что требует ручного вмешательства (что обычно означает использование dselect (1) или dpkg --remove для устранения некоторых из повреждающих пакетов)
Ubuntu попытается исправить себя, когда вы запустите команду. Когда он будет завершен, вы можете проверить, работает ли он снова, выполнив команду еще раз, и вы должны получить вывод, похожий на:
Чтение списков пакетов... Готово Создание дерева зависимостей Чтение информации о состоянии... Готово 0 обновлено, 0 вновь установлено, 0 удалено и 2 не обновлены.
Ответ 2
Если sudo apt-get install -f <package-name>
не работает, попробуйте aptitude:
sudo apt-get install aptitude
sudo aptitude install <package-name>
Aptitude попытается решить проблему.
В качестве примера, в моем случае, я все еще получаю некоторую ошибку при попытке установить libcurl4-openssl-dev
:
sudo apt-get install -f libcurl4-openssl-dev
Поэтому я стараюсь aptitude, оказывается, мне нужно понизить некоторые пакеты.
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) libyaml-dev [Not Installed]
Accept this solution? [Y/n/q/? (n)
The following actions will resolve these dependencies:
Downgrade the following packages:
1) libyaml-0-2 [0.1.4-3ubuntu3.1 (now) -> 0.1.4-3ubuntu3 (trusty)]
Accept this solution? [Y/n/q/?] (Y)
Ответ 3
Прежде всего попробуйте это
sudo apt-get update
sudo apt-get clean
sudo apt-get autoremove
Если ошибка все еще сохраняется, сделайте это
sudo apt --fix-broken install
sudo apt-get update && sudo apt-get upgrade
sudo dpkg --configure -a
sudo apt-get install -f
Затем попробуйте еще раз:
sudo apt-get install npm
Но если он еще не смог решить проблемы, проверьте зависимости, используя sudo dpkg --configure -a
и удалите их по одному. Предположим, что зависимости зависят от числа npm, а затем для этого,
sudo apt-get remove nodejs
sudo apt-get remove npm
Затем перейдите в /etc/apt/sources.list.d и удалите любой список узлов, если у вас есть. Затем сделайте
sudo apt-get update
Затем снова проверьте проблему с зависимостями, используя sudo dpkg --configure -a
и если все будет ясно, тогда все будет готово. Позже установите npm снова, используя это
v=8 # set to 4, 5, 6, ... as needed
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -
Затем установите пакет Node.js.
sudo apt-get install -y nodejs
Ответ выше будет работать и для общих случаев (для зависимостей от других пакетов, таких как django и т.д.) Сразу после того, как первые два процесса используют тот же процесс для пакета, с которым вы сталкиваетесь.
Ответ 4
Установка nodejs установит npm... так что просто удалите nodejs, а затем переустановите его: $ sudo apt-get remove nodejs
$ sudo apt-get --purge remove nodejs node npm
$ sudo apt-get clean
$ sudo apt-get autoclean
$ sudo apt-get -f install
$ sudo apt-get autoremove
Ответ 5
Я попал в такую ситуацию, когда установил узел js из последней стабильной версии.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
Кажется, эта версия уже поставляется с предварительно упакованным NPM. Поэтому, когда я попытался установить NPM снова, я получил эту ошибку. Если кто-то устанавливает Nodejs таким образом, нет необходимости устанавливать NPM отдельно.
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.
Ответ 6
Я только что решил эту проблему. Проблема была в конфликте версий. Nodejs 10 установлен с npm. Поэтому перед установкой nodejs удалите старый npm. Или удалите новый узел → удалить npm → снова установить узел.
Это единственный способ, который помог мне.
Ответ 7
sudo apt install aptitude
затем
sudo aptitude install npm
Источник: https://askubuntu.com/a/978353/458947
Ответ 8
Узел поставляется с установленной npm, поэтому вы должны иметь версию npm. Тем не менее, npm обновляется чаще, чем Node, поэтому вы захотите убедиться в его последней версии.
Пытаться
sudo npm install npm -g