E: Ошибка, pkgProblemResolver::Resolve генерирует разрывы, это может быть вызвано удерживаемыми пакетами
Я не уверен, что вызвало эту ошибку, но вот что говорит вся ошибка, а также это сидит как уведомление, и мешает мне обновить любое программное обеспечение с помощью диспетчера обновлений. Пожалуйста, предоставьте некоторую помощь или скажите, как выяснить, что сделать, чтобы исправить это.
Could not calculate the upgrade
An unresolvable problem occurred while calculating the upgrade.
Please report this bug against the 'update-manager' package and include the following error message:
'E:Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.'
7 ответов
Этот пост может решить вашу проблему. Чтобы подвести итог,
- Открой
/var/log/dist-upgrade/apt.log
файл журнала в текстовом редакторе. - Найдите все "сломанные" пакеты и удалите их
sudo apt-get remove <package>
,
Примечание: в более новых версиях журнал находится в /var/log/apt/term.log
вместо.
Пытаться:
sudo apt-get update && sudo apt-get upgrade
Затем снова запустите менеджер обновлений.
Я получил эту ошибку при обновлении с 16.04 до 18.04 и потерял мощность в середине.
Вот как выглядела ошибка, и apt-get install -f не исправляет ее.
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
gir1.2-gtk-3.0 : Depends: gir1.2-pango-1.0 (>= 1.40.5) but 1.38.1-1 is installed
Depends: libgtk-3-0 (>= 3.22.29) but 3.18.9-1ubuntu3.3 is installed
hplip : Depends: hplip-data (= 3.17.10+repack0-5) but 3.16.3+repack0-1 is installed
Depends: printer-driver-hpcups (= 3.17.10+repack0-5) but 3.16.3+repack0-1 is installed
Depends: libsane1 (>= 1.0.24) but it is not installed
libhpmud0 : Depends: libsnmp30 (>= 5.7.3+dfsg-1.8ubuntu3~dfsg) but 5.7.3+dfsg-1ubuntu4.2 is installed
onboard : Depends: onboard-common (< 1.4.1-2ubuntu1.1) but it is not installed
Depends: onboard-common (>= 1.4.1-2ubuntu1) but it is not installed
Depends: libhunspell-1.6-0 but it is not installed
Recommends: onboard-data (>= 1.4.1-2ubuntu1) but 1.2.0-0ubuntu5 is installed
python3 : Depends: python3.6 (>= 3.6.7-1~) but it is not installed
Depends: libpython3-stdlib (= 3.6.7-1~18.04) but 3.5.1-3 is installed
python3-apt : Depends: libapt-inst2.0 (>= 1.6.5~) but 1.2.29ubuntu0.1 is installed
Depends: libapt-pkg5.0 (>= 1.6.5~) but 1.2.29ubuntu0.1 is installed
python3-cryptography : Depends: python3-asn1crypto (>= 0.21.0~) but it is not installed
Depends: python3-idna (>= 2.1) but 2.0-3 is installed
python3-gdbm : Depends: libgdbm5 (>= 1.14) but it is not installed
python3-pil : Depends: libwebp6 (>= 0.5.1) but it is not installed
Depends: libwebpdemux2 (>= 0.5.1) but it is not installed
Depends: libwebpmux3 (>= 0.6.1-2) but it is not installed
Recommends: python3-olefile but it is not installed
python3-systemd : Depends: libsystemd0 (>= 233) but 229-4ubuntu21.16 is installed
python3-uno : Depends: libreoffice-core (= 1:6.0.7-0ubuntu0.18.04.2) but 1:5.1.6~rc2-0ubuntu1~xenial6 is installed
Depends: python3.6 but it is not installed
Depends: uno-libs3 (>= 5.3.0~alpha) but 5.1.6~rc2-0ubuntu1~xenial6 is installed
python3.6-dev : Depends: python3.6 (= 3.6.7-1~18.04) but it is not installed
totem-plugins : Depends: libgtk-3-0 (>= 3.19.4) but 3.18.9-1ubuntu3.3 is installed
Depends: liblirc-client0 but it is not installed
Depends: libtotem0 (>= 3.26.0-0ubuntu6.2) but 3.18.1-1ubuntu4 is installed
Depends: totem (= 3.26.0-0ubuntu6.2) but 3.18.1-1ubuntu4 is installed
Depends: gir1.2-totem-1.0 (= 3.26.0-0ubuntu6.2) but 3.18.1-1ubuntu4 is installed
virtualbox : Depends: python3.6 but it is not installed
Depends: libgsoap-2.8.60 but it is not installed
Depends: libpng16-16 (>= 1.6.2-1) but it is not installed
Recommends: libqt5core5a (>= 5.9.0~beta) but 5.5.1+dfsg-16ubuntu7.5 is installed
virtualbox-qt : Depends: libqt5core5a (>= 5.9.0~beta) but 5.5.1+dfsg-16ubuntu7.5 is installed
Depends: libqt5widgets5 (>= 5.7.0) but 5.5.1+dfsg-16ubuntu7.5 is installed
Depends: libqt5x11extras5 (>= 5.6.0) but 5.5.1-3build1 is installed
E: Unmet dependencies. Try using -f.
Я тоже пробовал sudo apt-get remove
пакеты в /var/log/dist-upgrade/apt.log, но это тоже не сработало.
Этот работал для меня
dpkg -l | grep ^iU | awk '{print $2}' | xargs sudo dpkg --purge
Он удалил сломанные пакеты, затем я побежал
apt install -f
Это скачанные и установленные пакеты.
Я столкнулся с этой проблемой вчера после того, как кто-то перезагрузился во время обновления версии ОС. Ни один из описанных выше подходов не работал из-за огромного количества ошибок (~1500 пакетов).
Чтобы выздороветь, я пошел в
/var/log/apt/history.log
и посмотрел на последнюю запись, в которой есть три очень длинных списка, описывающих, что предпринималось при неудачном обновлении ОС. Он состоит из трех списков «Обновить:», «Установить:», «Удалить:» вида:
Upgrade: package1:arch (old, new), package2:arch (old, new),
...
Возьмите эти три списка в свой любимый редактор, совместимый с регулярными выражениями, и замените круглые скобки до запятой новой строкой. В разделе «Удалить:» добавьте «-», чтобы у вас остались списки вроде:
Install:
speech-dispatcher-espeak-ng:amd64
fdisk:amd64
libgoa-backend-1.0-1:amd64
...
Upgrade:
speech-dispatcher-audio-plugins:amd64
ubuntu-settings:amd64
libmpc3:amd64
...
Remove:
qtdeclarative5-ubuntu-ui-toolkit-plugin:amd64-
python-sip:amd64-
gstreamer1.0-plugins-ugly-amr:amd64-
...
«-» был ключевым уроком, потому что, если вы не можете сказать ему как установить, так и удалить, вы не сможете пройти через многие циклы зависимостей.
Сохраните копию этого файла, чтобы вы могли обратиться к нему позже, но сделайте новую копию, где вы ее очистите: удалите все лишние строки файла, оставив только
package:arch
линии.
Запустите apt, используя полученный файл packages.txt следующим образом.
xargs -a packages.txt sudo apt install
Эта команда будет всеми добавлениями/удалениями, которые система намеревалась сделать до того, как она сломается, и должна представлять согласованный набор.
Предполагая, что он завершится, вы можете завершить все пропущенное с помощью
sudo apt install -f
а также
sudo apt dist-upgrade
.
В завершение создайте новый список только со списком пакетов «Установить:», передайте их
apt-mark auto
чтобы пометить пакеты как автоматически устанавливаемые (обновление выбрало их, а не вас).
xargs -a installed.txt sudo apt-mark auto
Я надеюсь, что это поможет кому-то еще, кто думал, что вся их система была повреждена.
Для меня проблема выглядела так
The following packages have unmet dependencies.
libglib2.0-dev : Depends: libglib2.0-0 (= 2.64.2-1~fakesync1) but 2.64.3-1~ubuntu20.04.1 is to be installed
Depends: libglib2.0-bin (= 2.64.2-1~fakesync1)
Это было вызвано неправильным выбором обновлений, которые я хотел загрузить. Я исправил это открыв
Software & Updates
, выбирая
Updates
и убедившись, что я выбрал
All updates
за
For other packages, subscribe to:
. См. Картинку ниже
Затем я запускаю обычный
apt update && apt dist-upgrade
, а затем я смог установить эту библиотеку.
Эта ошибка может быть вызвана неполной установкой пакета.
У вас есть два варианта: 1) исправить сломанную установку или 2) откатить (или удалить) сломанную установку.
Поскольку это не было упомянуто выше, для отката и удаления прерванной установки выйдите из synaptic (если вы все еще в нем), а затем введите эти команды в терминал:
sudo apt-get update # Make sure your package list is up to date
sudo apt-get autoremove # Removes "no longer required" packages
Затем, чтобы подтвердить, что сломанные пакеты исчезли, вернитесь в synaptic и выберите, Edit
| Fix broken packages
и не должно быть сломанных пакетов.
Обратите внимание, что это не исправляет неправильную установку, оно просто позволяет вам продолжить работу в синаптическом режиме с другой установкой или удалением и т. Д.
Случилось так, что вы начали установку пакета, а затем частично прошли через него, и после того, как были установлены некоторые зависимости, что-то пошло не так, оставив неиспользованные зависимые пакеты и неполную установку.
Проблема заключалась в том, что у меня было установлено несколько пакетов, которые не имели пути обновления, то есть недоступны в Precise. Чтобы отладить это я посмотрел в /var/log/dist-upgrade/apt.log
файл, и он идентифицирует пакеты, которые были "сломаны". Я просто должен был apt-get remove
их, сделайте обновление выпуска, и после этого я мог бы переустановить их.
Иногда, когда вы переходите на апгрейд вашей машины с помощью apt-get, вы видите, что пакет "задерживается".
Обычно для обновления машины вы запускаете:
sudo apt-get update
sudo apt-get upgrade
Чтобы исправить пакеты были сохранены:
sudo apt-get dist-upgrade
// dist-upgrade in addition to performing the function of upgrade,
// also intelligently handles changing dependencies with new versions
// of packages; apt-get has a "smart" conflict resolution system, and
// it will attempt to upgrade the most important packages at the
// expense of less important ones if necessary. So, dist-upgrade
// command may remove some packages. The /etc/apt/sources.list file
// contains a list of locations from which to retrieve desired package
// files. See also apt_preferences(5) for a mechanism for overriding
// the general settings for individual packages.
Это обновит пакеты с более новыми доступными версиями и установит все новые зависимости, необходимые для этого.