修复 debian libc-bin

修复 debian libc-bin

显然我再次破坏了我的 Debian 系统。

如果我想使用安装任何东西,apt我会收到以下警告:

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.25) but 2.27-3 is to be installed
 locales : Depends: libc-bin (> 2.27) but 2.24-11+deb9u3 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

遵循这个提示是没有用的,因为它只会导致

The following packages were automatically installed and are no longer required:
  bc cups-browsed cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers
  cups-ppdc cups-server-common dc foomatic-db-compressed-ppds foomatic-db-engine hp-ppd
  hplip-data libart-2.0-2 libavahi-glib1 libcupscgi1 libcupsmime1 libcupsppdc1
  libfontembed1 libgutenprint2 libhpmud0 liblouisutdml-bin liblouisutdml-data
  liblouisutdml7 libqpdf17 libsane-hpaio libsnmp-base libsnmp30 mscompress
  openprinting-ppds printer-driver-all printer-driver-brlaser printer-driver-c2050
  printer-driver-c2esp printer-driver-cjet printer-driver-dymo printer-driver-escpr
  printer-driver-foo2zjs printer-driver-foo2zjs-common printer-driver-fujixerox
  printer-driver-hpijs printer-driver-m2300w printer-driver-min12xxw
  printer-driver-pnm2ppa printer-driver-ptouch printer-driver-pxljr
  printer-driver-sag-gdi python3-pexpect python3-pil python3-ptyprocess
  python3-renderpm python3-reportlab python3-reportlab-accel qpdf ssl-cert
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  cups hplip libc-bin locales printer-driver-gutenprint printer-driver-hpcups
  printer-driver-postscript-hp printer-driver-splix task-english task-print-server
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  libc-bin
0 upgraded, 0 newly installed, 10 to remove and 7 not upgraded.
1 not fully installed or removed.
After this operation, 22.0 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] 

谷歌的快速搜索告诉我,删除libc-bin是一个糟糕的主意,像我这样的白痴绝对不应该这样做。现在的问题是,我该如何解决我的问题?


更多信息:

$ cat /etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 9.4.0 _Stretch_ - Official amd64 NETINST 20180310-11:21]/ stretch main
# deb cdrom:[Debian GNU/Linux 9.4.0 _Stretch_ - Official amd64 NETINST 20180310-11:21]/ stretch main
deb http://ftp.de.debian.org/debian/ stretch main non-free contrib
deb-src http://ftp.de.debian.org/debian/ stretch main non-free contrib

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free

根据评论要求:

$ sudo apt install libc-bin/stable

Reading package lists... Done
Building dependency tree       
Reading state information... Done
libc-bin is already the newest version (2.24-11+deb9u3).
Selected version '2.24-11+deb9u3' (Debian:9.4/stable [amd64]) for 'libc-bin'
Selected version '2.24-11+deb9u3' (Debian:9.4/stable [amd64]) for 'libc6' because of 'libc-bin'
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libc-bin : Depends: libc6 (< 2.25) but 2.27-3 is to be installed
 locales : Depends: libc-bin (> 2.27) but 2.24-11+deb9u3 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

$ cat /etc/apt/sources.list.d/*

# deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu cosmic main
# deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu cosmic main

$ apt-cache policy

Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://ftp.de.debian.org/debian stretch-updates/main amd64 Packages
     release o=Debian,a=stable-updates,n=stretch-updates,l=Debian,c=main,b=amd64
     origin ftp.de.debian.org
 500 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=non-free,b=amd64
     origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/contrib amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=contrib,b=amd64
     origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=main,b=amd64
     origin security.debian.org
 500 http://ftp.de.debian.org/debian stretch/contrib amd64 Packages
     release v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=contrib,b=amd64
     origin ftp.de.debian.org
 500 http://ftp.de.debian.org/debian stretch/non-free amd64 Packages
     release v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=non-free,b=amd64
     origin ftp.de.debian.org
 500 http://ftp.de.debian.org/debian stretch/main amd64 Packages
     release v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64
     origin ftp.de.debian.org
Pinned packages:

$dpkg --list libc6

 Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name             Version       Architecture  Description
+++-================-=============-=============-=====================================
ii  libc6:amd64      2.27-3        amd64         GNU C Library: Shared libraries

find /lib -name libc-\*

/lib/x86_64-linux-gnu/libc-2.27.so

答案1

问题似乎是您已经以某种方式安装了(或者至少让 dpkg 确信它可用)该locales软件包的较新版本。 Stretch 中可用的版本仅依赖于libc-bin (>> 2.24),而您的输出显示您apt看到的版本依赖于libc-bin (> 2.27)(您可能会说在依赖项和输出中dpkg使用不一致,在这种情况下,就是这样,它们的意思是相同的)。>>apt>

locales软件包不是必需的,因此我会尝试删除它,然后再次安装它,如果您编译了很多语言环境,这可能需要一段时间。

相关内容