web-dev-qa-db-ja.com

Ubuntu 18.04の壊れた依存関係:

私は最近、Ubuntu bionicでdist-upgradeを実行しました。 dist-upgradeは、シャッターやピジンのような、私が保持しようと思っていたいくつかのソフトウェアを削除し始めました。これらとgcc-multilibをインストールしようとすると、依存関係エラーが発生しました。これを修正するために、私は this リンクをたどりました。 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"

どうやら保留パッケージはありません。

一部の情報:メイン、制限付き、ユニバース、マルチバース、バイオニックアップデート、バイオニックセキュリティが有効になっています。 y-ppa-managerを除いて、他のすべてのPPAは無効化または削除されています。さらに情報が必要な場合は、お知らせください。

Update 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-getの両方で実行します。現在、私は最後のいくつかのパッケージを解決しようとしていますが、次の問題に遭遇しました:

$ 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)

どうやら、パッケージのインストールに必要なPerlを使用するためにGLIBC_2.28をインストールする必要がありますが、これは私が移動したいバージョンです。つまり、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]
1
Thomas

Perlベースのdebパッケージをpackages.ubuntu.comに手動でダウンロードし、次のコマンドSudo dpkg -i Perl-base_5.26.1-6ubuntu0.3_AMD64.debを実行することで問題を解決できました。これは、Perlベースのダウングレードに成功したようですが、いくつかの依存関係エラーが報告されました。その後、aptitudeは他のlibc6パッケージをダウングレードすることで他の競合を解決することができました。最後のステップとして、公式リポジトリにないすべてのパッケージを更新3にリストされているようにチェックし、不要になったパッケージを削除します。

1
Thomas