显然我再次破坏了我的 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
软件包不是必需的,因此我会尝试删除它,然后再次安装它,如果您编译了很多语言环境,这可能需要一段时间。