Очевидно, я снова сломал свою систему 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!'
 ?] 

Быстрый поиск в Google сообщил мне, что удаление 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
2
DerWeh 28 Май 2018 в 17:28
Каков результат apt-cache policy?
 – 
GAD3R
27 Май 2018 в 14:09
Я подозреваю, что у вас установлена ​​странная версия libc, что выводит следующие команды: dpkg --list libc6 и find /lib -name libc-\*.
 – 
GracefulRestart
28 Май 2018 в 02:05
1
Я уже пробовал apt --reinstall install libc-bin, но это вызывает только ошибку unmet dependencies, на которую я уже указывал.
 – 
DerWeh
28 Май 2018 в 17:33
1
У меня была такая же проблема. Исправлено путем загрузки deb-файла libc-bin вручную из репозитория Debian и установки его с помощью dpkg -i, а затем запуска apt --fix-broken install
 – 
Pyroman
4 Авг 2019 в 03:20

1 ответ

Похоже, проблема в том, что вы каким-то образом установили (или, по крайней мере, убедили dpkg, что он доступен) более новую версию пакета locales. Тот, что доступен в Stretch, зависит только от libc-bin (>> 2.24), в то время как ваши выходные данные показывают, что ваш apt видит версию, зависящую от libc-bin (> 2.27) (вы можете сказать, что dpkg использует >> в зависимостях и apt выводит > в таких случаях, так оно и есть, они означают одно и то же).

Пакет locales не является обязательным, поэтому я бы попытался удалить его, а затем снова установить, если у вас скомпилировано много локалей, что может занять некоторое время.

0
Henrik supports the community 27 Май 2018 в 02:30
1
Спасибо за помощь, но похоже, что удаление locales ничего не меняет. Его удаление приводит к libc-bin : Depends: libc6 (< 2.25) but 2.27-3 is to be installed task-english : Depends: locales but it is not going to be installed
 – 
DerWeh
27 Май 2018 в 06:45
Я не исключаю, что вашу систему можно спасти, но это будет непросто, и для этого нужно больше информации и больше взаимодействия, чем действительно подходит для SE (возможно, чат работает).
 – 
Henrik supports the community
27 Май 2018 в 14:26
Спасибо за помощь, я готов предоставить любую информацию, которую я могу. Я просто не разбираюсь в Linux и сейчас жду в аэропорту со скоростью 1 КБ/с.
 – 
DerWeh
27 Май 2018 в 19:36