web-dev-qa-db-ja.com

Debian Wheezyでlibc6をアップグレードできない

いくつかのパッケージをアップグレードしようとしたところ、libcのアップグレードで失敗しました。そして今、何もアップグレードすることは不可能です。これが私がやったことです:

# apt-get dist-upgrade

Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc6 : Depends: libc-bin (= 2.13-37) but 2.13-38 is installed
E: Unmet dependencies. Try using -f.

root@pagalbadaiktais:~# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  libc6
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc6
1 upgraded, 0 newly installed, 0 to remove and 71 not upgraded.
Need to get 4339 kB of archives.
After this operation, 1024 B of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://ftp.lt.debian.org/debian/ testing/main libc6 AMD64 2.13-38 [4339 kB]
Fetched 4339 kB in 0s (30.5 MB/s)
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Preconfiguring packages ...
dpkg: warning: files list file for package 'libc6:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'gcc-4.7-base:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'liblzma5:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgcc1:AMD64' missing; assuming package has no files currently installed
(Reading database ... 26345 files and directories currently installed.)
Preparing to replace libc6:AMD64 2.13-37 (using .../libc6_2.13-38_AMD64.deb) ...

A copy of the C library was found in an unexpected directory:
  '/lib/x86_64-linux-gnu/libc-2.13.so'
It is not safe to upgrade the C library in this situation;
please remove that copy of the C library or get it out of
'/lib/x86_64-linux-gnu' and try again.

dpkg: error processing /var/cache/apt/archives/libc6_2.13-38_AMD64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.13-38_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

私はこの問題を非常にググっていました..この問題を解決しようとした人々は、マシンを再起動した後、disto全体を再インストールすることになりました。

Ircヘルプからの追加情報:

# dpkg -S /lib/x86_64-linux-gnu/libc-2.13.so
dpkg-query: warning: files list file for package 'libc6:AMD64' missing; assuming package has no files currently installed
dpkg-query: warning: files list file for package 'gcc-4.7-base:AMD64' missing; assuming package has no files currently installed
dpkg-query: warning: files list file for package 'liblzma5:AMD64' missing; assuming package has no files currently installed
dpkg-query: warning: files list file for package 'libgcc1:AMD64' missing; assuming package has no files currently installed
dpkg-query: no path found matching pattern /lib/x86_64-linux-gnu/libc-2.13.so
# ls -l /var/lib/dpkg/info/libc*
-rw-r--r-- 1 root root     87 Dec 30 17:36 /var/lib/dpkg/info/libc-bin.conffiles
-rw-r--r-- 1 root root   1790 Mar  8 22:06 /var/lib/dpkg/info/libc-bin.list
-rw-r--r-- 1 root root   2874 Dec 30 17:36 /var/lib/dpkg/info/libc-bin.md5sums
-rwxr-xr-x 1 root root    246 Dec 30 17:36 /var/lib/dpkg/info/libc-bin.postinst
-rw-r--r-- 1 root root     40 Nov 19 01:07 /var/lib/dpkg/info/libc6.conffiles
-rw-r--r-- 1 root root  13341 Feb  1 15:45 /var/lib/dpkg/info/libc6.list
-rw-r--r-- 1 root root  21675 Nov 19 01:07 /var/lib/dpkg/info/libc6.md5sums
-rwxr-xr-x 1 root root  10114 Nov 19 01:07 /var/lib/dpkg/info/libc6.postinst
-rwxr-xr-x 1 root root   1117 Nov 19 01:07 /var/lib/dpkg/info/libc6.postrm
-rwxr-xr-x 1 root root  17327 Nov 19 01:07 /var/lib/dpkg/info/libc6.preinst
-rwxr-xr-x 1 root root   2015 Nov 19 01:07 /var/lib/dpkg/info/libc6.prerm
-rw-r--r-- 1 root root    996 Nov 19 01:07 /var/lib/dpkg/info/libc6.shlibs
-rw-r--r-- 1 root root 106948 Nov 19 01:07 /var/lib/dpkg/info/libc6.symbols
-rw-r--r-- 1 root root  64982 Nov 19 01:07 /var/lib/dpkg/info/libc6.templates
-rw-r--r-- 1 root root    267 Feb  1 15:47 /var/lib/dpkg/info/libcap2:AMD64.list
-rw-r--r-- 1 root root    281 Aug 11  2012 /var/lib/dpkg/info/libcap2:AMD64.md5sums
-rwxr-xr-x 1 root root    135 Aug 11  2012 /var/lib/dpkg/info/libcap2:AMD64.postinst
-rwxr-xr-x 1 root root    132 Aug 11  2012 /var/lib/dpkg/info/libcap2:AMD64.postrm
-rw-r--r-- 1 root root     27 Aug 11  2012 /var/lib/dpkg/info/libcap2:AMD64.shlibs
-rw-r--r-- 1 root root    338 Feb  1 15:47 /var/lib/dpkg/info/libck-connector0:AMD64.list
-rw-r--r-- 1 root root    322 Jul 30  2012 /var/lib/dpkg/info/libck-connector0:AMD64.md5sums
-rwxr-xr-x 1 root root    135 Jul 30  2012 /var/lib/dpkg/info/libck-connector0:AMD64.postinst
-rwxr-xr-x 1 root root    132 Jul 30  2012 /var/lib/dpkg/info/libck-connector0:AMD64.postrm
-rw-r--r-- 1 root root     35 Jul 30  2012 /var/lib/dpkg/info/libck-connector0:AMD64.shlibs
-rw-r--r-- 1 root root    350 Jul 30  2012 /var/lib/dpkg/info/libck-connector0:AMD64.symbols
-rw-r--r-- 1 root root    395 Feb  1 15:46 /var/lib/dpkg/info/libclass-isa-Perl.list
-rw-r--r-- 1 root root    451 Nov 24  2011 /var/lib/dpkg/info/libclass-isa-Perl.md5sums
-rw-r--r-- 1 root root    247 Feb  1 15:47 /var/lib/dpkg/info/libcomerr2:AMD64.list
-rw-r--r-- 1 root root    221 Jul 31  2012 /var/lib/dpkg/info/libcomerr2:AMD64.md5sums
-rwxr-xr-x 1 root root    253 Jul 31  2012 /var/lib/dpkg/info/libcomerr2:AMD64.postinst
-rwxr-xr-x 1 root root    247 Jul 31  2012 /var/lib/dpkg/info/libcomerr2:AMD64.postrm
-rw-r--r-- 1 root root     82 Jul 31  2012 /var/lib/dpkg/info/libcomerr2:AMD64.shlibs
-rw-r--r-- 1 root root    574 Jul 31  2012 /var/lib/dpkg/info/libcomerr2:AMD64.symbols
-rw-r--r-- 1 root root   1553 Feb  1 15:46 /var/lib/dpkg/info/libconsole.list
-rw-r--r-- 1 root root   1556 Feb 18  2011 /var/lib/dpkg/info/libconsole.md5sums
-rwxr-xr-x 1 root root    135 Feb 18  2011 /var/lib/dpkg/info/libconsole.postinst
-rwxr-xr-x 1 root root    132 Feb 18  2011 /var/lib/dpkg/info/libconsole.postrm
-rw-r--r-- 1 root root    124 Feb 18  2011 /var/lib/dpkg/info/libconsole.shlibs
-rw-r--r-- 1 root root   3889 Feb  1 15:48 /var/lib/dpkg/info/libcrack2.list
-rw-r--r-- 1 root root   3226 Dec 13 00:00 /var/lib/dpkg/info/libcrack2.md5sums
-rwxr-xr-x 1 root root    135 Dec 13 00:00 /var/lib/dpkg/info/libcrack2.postinst
-rwxr-xr-x 1 root root    132 Dec 13 00:00 /var/lib/dpkg/info/libcrack2.postrm
-rw-r--r-- 1 root root     21 Dec 13 00:00 /var/lib/dpkg/info/libcrack2.shlibs
-rw-r--r-- 1 root root    703 Dec 13 00:00 /var/lib/dpkg/info/libcrack2.symbols
-rw-r--r-- 1 root root    432 Feb  1 15:47 /var/lib/dpkg/info/libcroco3:AMD64.list
-rw-r--r-- 1 root root    558 Nov 26 15:53 /var/lib/dpkg/info/libcroco3:AMD64.md5sums
-rwxr-xr-x 1 root root    135 Nov 26 15:53 /var/lib/dpkg/info/libcroco3:AMD64.postinst
-rwxr-xr-x 1 root root    132 Nov 26 15:53 /var/lib/dpkg/info/libcroco3:AMD64.postrm
-rw-r--r-- 1 root root     25 Nov 26 15:53 /var/lib/dpkg/info/libcroco3:AMD64.shlibs
-rw-r--r-- 1 root root  15081 Nov 26 15:53 /var/lib/dpkg/info/libcroco3:AMD64.symbols
-rw-r--r-- 1 root root    366 Feb  1 15:47 /var/lib/dpkg/info/libcups2:AMD64.list
-rw-r--r-- 1 root root    438 Jan 11 11:57 /var/lib/dpkg/info/libcups2:AMD64.md5sums
-rwxr-xr-x 1 root root    135 Jan 11 11:55 /var/lib/dpkg/info/libcups2:AMD64.postinst
-rwxr-xr-x 1 root root    132 Jan 11 11:55 /var/lib/dpkg/info/libcups2:AMD64.postrm
-rw-r--r-- 1 root root     19 Jan 11 11:55 /var/lib/dpkg/info/libcups2:AMD64.shlibs
-rw-r--r-- 1 root root  11545 Jan 11 11:55 /var/lib/dpkg/info/libcups2:AMD64.symbols
-rw-r--r-- 1 root root    834 Feb  5 12:12 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.list
-rw-r--r-- 1 root root   1056 May 25  2012 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.md5sums
-rwxr-xr-x 1 root root    135 May 25  2012 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.postinst
-rwxr-xr-x 1 root root    132 May 25  2012 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.postrm
-rw-r--r-- 1 root root     33 May 25  2012 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.shlibs
-rw-r--r-- 1 root root   2390 May 25  2012 /var/lib/dpkg/info/libcurl3-gnutls:AMD64.symbols
-rw-r--r-- 1 root root   4336 Feb  1 15:46 /var/lib/dpkg/info/libcwidget3.list
-rw-r--r-- 1 root root   3462 Jun 17  2012 /var/lib/dpkg/info/libcwidget3.md5sums
-rwxr-xr-x 1 root root    135 Jun 17  2012 /var/lib/dpkg/info/libcwidget3.postinst
-rwxr-xr-x 1 root root    132 Jun 17  2012 /var/lib/dpkg/info/libcwidget3.postrm
-rw-r--r-- 1 root root     25 Jun 17  2012 /var/lib/dpkg/info/libcwidget3.shlibs
#  apt-cache policy libc6
libc6:
  Installed: 2.13-37
  Candidate: 2.13-38
  Version table:
     2.13-38 0
        500 http://ftp.lt.debian.org/debian/ testing/main AMD64 Packages
 *** 2.13-37 0
        100 /var/lib/dpkg/status

IRC=からの結論として、multiarchの問題を解決します。64ビットパッケージにこだわるのがいいでしょう。

6
holms

おそらく解決策を見つけました。

まず、ここに移動します/lib/x86_64-linux-gnuこれらのファイルを/rootに移動します:libc-2.13.solibdl-2.13.solibm-2.13.solibpthread-2.13.solibrt-2.13.so

あなたのバージョンは多分すでに異なっています。次に、多くのことが機能しなくなります。定義済みのLD_PRELOADを使用してbashを起動する必要があります。

 LD_PRELOAD=/root/libc-2.13.so:/root/libdl-2.13.so:/root/libm-2.13.so:/root/libpthread-2.13.so:/root/librt-2.13.so bash

その後、dist-upgradeが機能します:

apt-get -f dist-upgrade
8
holms

最初に、あなたがすることを言われたします。

A copy of the C library was found in an unexpected directory:
  '/lib/x86_64-linux-gnu/libc-2.13.so'
It is not safe to upgrade the C library in this situation;
please remove that copy of the C library or get it out of
'/lib/x86_64-linux-gnu' and try again.

多分それはすべてを修正します。しかし、あなたはまだそこに進んでいて、メンテナンス期間がありすべきであるので、システムを再インストールします。

4
Michael Hampton

あなたは2つの仕事をする必要があります:

1. apt-get -f dist-upgrade
2. dpkg -a --configure 

もちろんそれらの繰り返しは不可欠です。

1
PersianGulf

インストールのコピーを別の場所(tarまたはrsyncを使用したすべてのシステムディレクトリ)に作成し、chrootされた環境で修正を試みて、機能するまで、本番システムで同じことを行います。

また、debbootstrapとchrootを使用してシステムを再インストールすることもできます。これにより、ダウンタイムが非常に少なくなります。

0
Didi Kohen