LINUX.ORG.RU

Удалил библиотеку libc6. Как восстановить?

 , ,


0

1

Здравствуйте.

Debian 9 oldstable Stretch Работает система более 3-х лет.

Давным давно проводилось обновление дистра с 8 на 9. Затем менялись репозитории. Менялся сервер с РФ на MIT, потом ставились какие-то пакеты, снова менялись сервера. Потом source.list снова редактировался (формировался генератором), что-то добавлялось в source.list.d ... Причем ставилось все по-разному. В хорошие времена через aptitude, чаще через apt-get, но и не без dpkg (и даже через gdebi и synaptic).

В результате некоторые пакеты требовали от зависимостей одних версий, какие-то пакеты других версий, но в принципе это не напрягало. Но в итоге при попытке установить wine появилось сообщение, что у вас сломанные пакеты и т.д... libpkg5.0 не будет установлено...

Короче конфликт версий, ничего нового, и вполне ожидаемо, при установке с разных репов, плюс нет уверенности, что обновление до 9-ки прошло правильно. Все починки типа install -f и т.п. ни к чему не приводили. И в общем под это дело решил я навести порядок c версиями. В очередной раз обновив source.list, я стал удалять старые версии пакетов через dpkg -r и ставить взамен пакеты уже нужных версий с packages.debian.org Ну, и пошло дело, даже wine удалось поставить. (Ни о каких бекапах речи не шло даже) Но час был поздний и хотелось спать. И, уже не вникая в названия пакетов, которые я удаляю, я удалил libc6. Система сразу же начала глючить. Я даже не уверен, что библиотека удалилась полностью, только частично. Увидев после перезагрузки сообщение "...kernel panic..." спать перехотелось.

Теперь, что я сделал. Я решил через live usb с Debian'ом, установить эту библиотеку. С помощью chroot. После всех биндов dev,sys,proc и затем chroot /mnt/PC /bin/bash появилось сообщение, что нет файла или каталога /bin/bash (архитектура и live, и системы - x64) Это сообщение продакдакил очень внимательно и решения для себя так и не нашел. Полагаю, что при удалении libc6 (с ключем --force-depends) было удалено много всего из ситемы. И сейчас запуститься через среду chroot не получается из-за отсутствия большого кол-ва библиотек, которые потянула libc6

Как думаете, может скопировать какие-нибудь библиотеки с системы live usb и закинуть их на root диск, и если да, то какие каталоги (lib,lib32,lib64...) и будет ли толк? А может еще какие идеи могут быть? Как восстановить эту библиотеку? Я надеюсь все-таки на chroot.

(То, что легче восстановить систему и вовремя делать бекапы это очевидно)

Вне chroot можно использовать dpkg-deb, чтобы распаковать произвольный пакет в произвольную директорию. После ручной распаковки libc6.deb в /mnt/PC, я думаю, /bin/bash станет возможно запустить.

Альтернативный вариант - установить вне chroot пакет busybox-static, скопировать бинарник busybox куда-то внутрь /mnt/PC и сделать chroot /mnt/PC /path/to/busybox ash. Получится весьма ограниченный шелл, в котором есть встроенные tar и ar, не зависящие от libc6; их можно использовать для ручной распаковки *.deb. Но это сложнее.

anonymous
()

А что в дебиан не завезли аналог pacman --sysroot ? Как минимум, debootstrap там есть.

Deleted
()
Ответ на: комментарий от anonymous

dpkg-deb -x ...

сработало сразу. Спасибо за идею. Запустились даже иксы, но не все работает. Надо подробнее в зависимостях библиотеки разобраться.

Еще раз благодарю. Очень помогли.

PanArte
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.