починить debian libc-bin

Вопрос или проблема

Похоже, я снова поломал свою систему Debian.

Если я пытаюсь установить что-то с помощью apt, я получаю следующее предупреждение:

Чтение информации о состоянии... Готово
Вы можете попробовать запустить 'apt --fix-broken install', чтобы это исправить.
Следующие пакеты имеют неудовлетворенные зависимости:
 libc-bin : Зависит: libc6 (< 2.25), но 2.27-3 должен быть установлен
 locales : Зависит: libc-bin (> 2.27), но 2.24-11+deb9u3 должен быть установлен
E: Неудовлетворенные зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение).

Следовать этому совету бесполезно, так как это приводит только к

Следующие пакеты были установлены автоматически и больше не требуются:
  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
Используйте 'sudo apt autoremove', чтобы удалить их.
Следующие пакеты будут УДАЛЕНЫ:
  cups hplip libc-bin locales printer-driver-gutenprint printer-driver-hpcups
  printer-driver-postscript-hp printer-driver-splix task-english task-print-server
ПРЕДУПРЕЖДЕНИЕ: Следующие важные пакеты будут удалены.
Это НЕЛЬЗЯ делать, если вы точно не знаете, что делаете!
  libc-bin
0 обновлено, 0 ново установлено, 10 на удаление и 7 не обновлено.
1 не полностью установлен или удален.
После этой операции освобождается 22.0 МБ дискового пространства.
Вы собираетесь сделать что-то потенциально опасное.
Чтобы продолжить, введите фразу 'Да, делай, как я сказал!'
 ?] 

Быстрый поиск в Google сообщил мне, что удаление libc-bin – это ужасная идея, что дурак вроде меня никогда не должен делать. Теперь вопрос: как я могу исправить свою проблему?


Дополнительная информация:

$ cat /etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 9.4.0 _Stretch_ - Официальный amd64 NETINST 20180310-11:21]/ stretch main
# deb cdrom:[Debian GNU/Linux 9.4.0 _Stretch_ - Официальный 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, ранее известные как '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

Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
libc-bin уже является самой новой версией (2.24-11+deb9u3).
Выбрана версия '2.24-11+deb9u3' (Debian:9.4/stable [amd64]) для 'libc-bin'
Выбрана версия '2.24-11+deb9u3' (Debian:9.4/stable [amd64]) для 'libc6' из-за 'libc-bin'
Вы можете попробовать запустить 'apt --fix-broken install', чтобы это исправить.
Следующие пакеты имеют неудовлетворенные зависимости:
 libc-bin : Зависит: libc6 (< 2.25), но 2.27-3 должен быть установлен
 locales : Зависит: libc-bin (> 2.27), но 2.24-11+deb9u3 должен быть установлен
E: Неудовлетворенные зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение).

$ 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

Файлы пакетов:
 100 /var/lib/dpkg/status
     релиз a=now
 500 http://ftp.de.debian.org/debian stretch-updates/main amd64 Packages
     релиз o=Debian,a=stable-updates,n=stretch-updates,l=Debian,c=main,b=amd64
     источник ftp.de.debian.org
 500 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages
     релиз v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=non-free,b=amd64
     источник security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/contrib amd64 Packages
     релиз v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=contrib,b=amd64
     источник security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
     релиз v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=main,b=amd64
     источник security.debian.org
 500 http://ftp.de.debian.org/debian stretch/contrib amd64 Packages
     релиз v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=contrib,b=amd64
     источник ftp.de.debian.org
 500 http://ftp.de.debian.org/debian stretch/non-free amd64 Packages
     релиз v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=non-free,b=amd64
     источник ftp.de.debian.org
 500 http://ftp.de.debian.org/debian stretch/main amd64 Packages
     релиз v=9.4,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64
     источник ftp.de.debian.org
Закрепленные пакеты:

$dpkg --list libc6

 Желание=Неизвестно/Установка/Удаление/Очистка/Удержание
| Статус=Не/Уст/Конф-файлы/Распаковано/половина-конф/Половина-уст/триг-подождать/Триг-подвес
|/ Ошибка?=(нет)/Нужна повторная установка (Статус,Ошибка: прописные буквы=плохо)
||/ Имя             Версия       Архитектура  Описание
+++-================-=============-=============-=====================================
ii  libc6:amd64      2.27-3        amd64         Библиотека GNU C: Общие библиотеки

find /lib -name libc-\*

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

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

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

Ответ или решение

Исправление проблемы с библиотекой libc-bin в Debian

Если вы столкнулись с проблемой, связанной с библиотекой libc-bin в системе Debian, это обычно указывает на несоответствие версий зависимостей пакетов. В вашем случае, вы видите следующее сообщение об ошибке:

E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Давайте рассмотрим детальные шаги для устранения этой проблемы.

1. Проверка версий пакетов

Сначала, необходимо проверить текущие версии установленных пакетов libc-bin и libc6. Это можно сделать с помощью следующей команды:

dpkg --list | grep libc

А вы уже выполнили это и получили следующую информацию:

ii  libc6:amd64      2.27-3        amd64         GNU C Library: Shared libraries

Это означает, что у вас установлена версия libc6 2.27, которая конфликтует с версией libc-bin, требуемой для корректной работы системы на основе Debian Stretch.

2. Анализ источников пакетов

Обратите внимание на ваш файл /etc/apt/sources.list. Убедитесь, что он настроен на использование официальных репозиториев и не содержит сторонних или конфликтующих репозиториев. У вас уже установлен стандартный набор репозиториев:

deb 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 http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free

3. Очистка системы от некорректных пакетов

Для решения проблемы сначала попробуем удалить пакет locales, в котором, как вы уже заметили, появляется зависимость от libc-bin. Это можно сделать с помощью команды:

sudo apt remove locales

После этого попробуйте еще раз выполнить команду для исправления поврежденных зависимостей:

sudo apt --fix-broken install

4. Переустановка необходимых пакетов

После успешного выполнения предыдущих шагов, вы можете переустановить пакет locales:

sudo apt install locales

Если apt по-прежнему вызывает предупреждения о конфликтах, вы можете попробовать установить конкретную версию:

sudo apt install locales=2.24-11+deb9u3

5. Проверка целостности системы

После выполнения всех вышеуказанных шагов рекомендуется проверить состояние системы. Для этого выполните команду:

sudo dpkg --configure -a

Это позволит убедиться, что все пакеты корректно настроены и установлены.

6. Обновление системы

После успешного исправления проблемы рекомендуется обновить вашу систему до последней стабильной версии пакетов с помощью команды:

sudo apt update
sudo apt upgrade

Заключение

Следуя данным инструкциям, вы сможете эффективно исправить проблему с библиотекой libc-bin в Debian. Убедитесь, что системы всегда имеют актуальные репозитории и позволяют избежать подобных конфликтов в будущем. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью на специализированные форумы или в поддержку Debian.

Полезные ссылки

Если у вас возникли дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...