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 ответов

Этот пост может решить вашу проблему. Чтобы подвести итог,

  1. Открой /var/log/dist-upgrade/apt.log файл журнала в текстовом редакторе.
  2. Найдите все "сломанные" пакеты и удалите их 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.

Это обновит пакеты с более новыми доступными версиями и установит все новые зависимости, необходимые для этого.

Другие вопросы по тегам