Недавно я выполнил dist-upgrade для Ubuntu Bionic. Дистанционное обновление продолжалось, чтобы удалить некоторые программы, которые я собирался сохранить, такие как shutter и pidgin. Всякий раз, когда я пытался установить их и gcc-multilib, я получал ошибку неудовлетворенных зависимостей. Чтобы это исправить, я перешел по этой ссылке. Когда я попробовал aptitude, он наполовину потерпел неудачу при установке gcc-multilib с ошибкой dpkg:
dpkg: error processing package libc6:amd64 (--configure):
installed libc6:amd64 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent processing triggers for libc-bin:
libc-bin depends on libc6 (>> 2.28); however:
Version of libc6:amd64 on system is 2.27-3ubuntu1.
libc-bin depends on libc6 (<< 2.29); however:
Package libc6:amd64 is not configured yet.
dpkg: error processing package libc-bin (--configure):
dependency problems - leaving triggers unprocessed
dpkg: dependency problems prevent processing triggers for man-db:
man-db depends on libc6 (>= 2.17); however:
Package libc6:amd64 is not configured yet.
В настоящее время я застрял, пытаясь установить что-либо, даже обновление apt-get не удается. Любая помощь приветствуется.
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
libc-bin : Depends: libc6 (> 2.28) but 2.27-3ubuntu1 is installed
libc6-dbg : Depends: libc6 (= 2.28-8) but 2.27-3ubuntu1 is installed
libev-perl : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
perl-base : PreDepends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
$ sudo apt -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
libc-bin : Depends: libc6 (> 2.28) but 2.27-3ubuntu1 is installed
libc6-dbg : Depends: libc6 (= 2.28-8) but 2.27-3ubuntu1 is installed
libev-perl : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
perl-base : PreDepends: libc6 (>= 2.28) but 2.27-3ubuntu1 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies
$ apt-mark showhold
$ dpkg -l | grep "^hi"
По-видимому, нет удерживаемых пакетов.
Некоторая информация: основная, ограниченная, юниверс, мультивселенная, bionic-updates и bionic-security включены. Все остальные ppa были отключены или удалены, кроме y-ppa-manager. Если требуется дополнительная информация, пожалуйста, дайте мне знать.
Обновление 1 : я попытался выполнить следующую команду, чтобы понизить версию, но не уверен, что делать дальше.
$ sudo apt install libc-bin=2.27-3ubuntu1 libc6-dbg=2.27-3ubuntu1 libev-
perl=4.22-1build2 perl-base=5.26.1-6ubuntu0.3
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
libalgorithm-diff-xs-perl : Depends: perlapi-5.28.0
libanyevent-perl : Depends: perlapi-5.28.1
Recommends: libguard-perl but it is not going to be installed
libapt-pkg-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
Depends: perlapi-5.28.0
libasync-interrupt-perl : Depends: perlapi-5.28.0
libbit-vector-perl : Depends: perlapi-5.28.0
libcairo-gobject-perl : Depends: perlapi-5.28.0
libcairo-perl : Depends: perlapi-5.28.0
libclone-perl : Depends: perlapi-5.28.0
libcommon-sense-perl : Depends: perlapi-5.28.1
libdate-calc-xs-perl : Depends: perlapi-5.28.0
libfcgi-perl : Depends: perlapi-5.28.0
libfile-fcntllock-perl : Depends: perlapi-5.28.0
libglib-object-introspection-perl : Depends: perlapi-5.28.1
libglib-perl : Depends: perlapi-5.28.1
libhtml-parser-perl : Depends: perlapi-5.28.0
libio-pty-perl : Depends: perlapi-5.28.0
libjson-xs-perl : Depends: perlapi-5.28.0
liblist-moreutils-perl : Depends: perlapi-5.28.0
liblocale-gettext-perl : PreDepends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
PreDepends: perlapi-5.28.0
libnet-dbus-perl : Depends: perlapi-5.28.0
libnet-libidn-perl : Depends: perlapi-5.28.0
libnet-ssleay-perl : Depends: perlapi-5.28.0
libpango-perl : Depends: perlapi-5.28.0
libpcsc-perl : Depends: perlapi-5.28.0
libperl5.28 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is to be installed
libperlio-gzip-perl : Depends: perlapi-5.28.0
libsocket6-perl : Depends: perlapi-5.28.0
libsub-name-perl : Depends: perlapi-5.28.0
libtext-charwidth-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
Depends: perlapi-5.28.0
libtext-iconv-perl : Depends: perl-base (>= 5.28.0-3) but 5.26.1-6ubuntu0.3 is to be installed
Depends: perlapi-5.28.0
libunicode-linebreak-perl : Depends: perlapi-5.28.1
libunicode-map-perl : Depends: perlapi-5.28.0
libxml-libxml-perl : Depends: perlapi-5.28.1
libxml-parser-perl : Depends: perlapi-5.28.1
libyaml-libyaml-perl : Depends: perlapi-5.28.1
locales : Depends: libc-bin (> 2.28)
perl : Depends: perl-base (= 5.28.1-6) but 5.26.1-6ubuntu0.3 is to be installed
perl-modules-5.28 : Depends: perl-base (>= 5.28.1-1) but 5.26.1-6ubuntu0.3 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Обновление 2 : мне удалось исправить множество зависимостей с помощью длинной команды, указывающей точную версию каждого пакета, которая найдена на packages.ubuntu.com, и запускающей ее как на aptitude, так и на APT-получить. В настоящее время я пытаюсь решить последние несколько пакетов, но столкнулся со следующей проблемой:
$ sudo apt-get install perl-base=5.26.1-6ubuntu0.3 locales=2.27-3ubuntu1 libanyevent-perl=7.140-2 libc-bin=2.27-3ubuntu1 libev-perl=4.22-1build2 liblocale-gettext-perl=1.07-3build2 libxml-libxml-perl=2.0128+dfsg-5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
libevent-perl libio-async-perl libpoe-perl libtask-weaken-perl
Recommended packages:
libguard-perl
The following NEW packages will be installed:
locales
The following packages will be DOWNGRADED:
libanyevent-perl libc-bin libev-perl liblocale-gettext-perl libxml-libxml-perl perl-base
0 upgraded, 1 newly installed, 6 downgraded, 0 to remove and 8 not upgraded.
37 not fully installed or removed.
Need to get 0 B/6570 kB of archives.
After this operation, 12.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
/usr/bin/perl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/bin/perl)
Setting up libc6:amd64 (2.27-3ubuntu1) ...
/usr/bin/perl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/bin/perl)
dpkg: error processing package libc6:amd64 (--configure):
installed libc6:amd64 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
libc6:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)
Очевидно, мне нужно установить GLIBC_2.28, чтобы использовать perl, который требуется для установки пакетов, однако это версия, от которой я хочу отойти, т.е. я хочу вернуться к 2.27.
Обновление 3 :
$ apt list --installed | grep -v bionic
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Listing...
containerd.io/now 1.2.5-1 amd64 [installed,local]
distro-info-data/now 0.37ubuntu0.4 all [installed,upgradable to: 0.37ubuntu0.5]
gemalto-smartcard0/now 161-2 amd64 [installed,local]
google-chrome-stable/now 74.0.3729.131-1 amd64 [installed,local]
icaclient/now 13.10.0.20 amd64 [installed,local]
ipsec-tools/now 1:0.8.2+20140711-12 amd64 [installed,local]
libanyevent-perl/now 7.140-3 amd64 [installed,local]
libboost-date-time1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
libboost-filesystem1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
libboost-serialization1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
libboost-system1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
libboost-thread1.62.0/now 1.62.0+dfsg-10+b1 amd64 [installed,local]
libc-bin/now 2.28-8 amd64 [installed,local]
libc-l10n/now 2.28-8 all [installed,local]
libev-perl/now 4.25-1 amd64 [installed,local]
libfl2/now 2.6.4-6.2 amd64 [installed,local]
libgdbm-compat4/now 1.18.1-4 amd64 [installed,local]
libgdbm6/now 1.18.1-4 amd64 [installed,local]
libidn2-0/now 2.0.5-1 amd64 [installed,local]
liblocale-gettext-perl/now 1.07-3+b4 amd64 [installed,local]
libssl1.1/now 1.1.1b-1 amd64 [installed,local]
libxml-libxml-perl/now 2.0134+dfsg-1 amd64 [installed,local]
nessus/now 6.9.1 amd64 [installed,local]
pcsc-tools/now 1.5.4-1 amd64 [installed,local]
pdftk/now 3.0.0~malteworld1 all [installed,local]
pdftk-java/now 3.0.0~malteworld1 all [installed,local]
perl-base/now 5.28.1-6 amd64 [installed,local]
realpath/now 8.26-3ubuntu4 all [installed,local]
rocketchat/now 2.14.7-1215 amd64 [installed,local]
sublime-text/now 3207 amd64 [installed,local]
unattended-upgrades/now 1.1ubuntu1.18.04.10 all [installed,upgradable to: 1.1ubuntu1.18.04.11]
Мне удалось решить эту проблему, вручную загрузив deb-пакет perl-base на packages.ubuntu.com и выполнив следующую команду sudo dpkg -i perl-base_5.26.1-6ubuntu0.3_amd64.deb
, это, похоже, успешно понизило версию perl-base, но сообщило об ошибках некоторых зависимостей. После этого aptitude смог разрешить другие конфликты путем понижения других пакетов libc6. В качестве последнего шага я буду проверять все пакеты, которые не находятся в официальных репозиториях, перечисленных в обновлении 3, и удаляю те, которые мне больше не нужны.