Где скачать отсутствующий libc.so.6

Я недавно случайно удалил файл /lib/x86_64-linux-gnu/libc.so.6. Этот файл нужен большинству программ, поэтому мой компьютер в основном сломан, и я могу получить доступ к жесткому диску только через работающий USB.

Я использую 64-битный Crunchbang Waldorf, основанный на Debian.

Как я могу заменить libc.so.6? (/lib64/ не содержит копию.)

Выход изlocate libc.so (на живом USB, со сломанным жестким диском)

/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6

Содержимое /etc/apt/sources.list

deb http://mozilla.debian.net/ wheezy-backports iceweasel-release

## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main

## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free

## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main

4 ответа

Я предполагаю, что ваша живая флешка имеет тот же дистрибутив, что и у вас, или, по крайней мере, это дистрибутив на основе Debian.

Исходя из этих предположений, сначала загрузите вашу систему с USB-флешки. Затем запросите пакет, которому принадлежит файл /lib/x86_64-linux-gnu/libc.so.6 с командой dpkg -S /lib/x86_64-linux-gnu/libc.so.6 (файл окажется принадлежащим пакету с именем "libc6", но в любом случае это хорошее упражнение).

Когда ваша система работает с USB-флешки, скачайте требуемый пакет или пакеты с сайта Crunchbang Waldorf.

Затем подключите жесткий диск к некоторому каталогу. В качестве примера, я собираюсь, опять же, предположить, что вы будете монтировать ваш корневой раздел с жесткого диска под /mnt,

Тогда все, что осталось сделать, это переустановить требуемый пакет или пакеты, используя --root /mnt директива для dpkg, Таким образом, пакеты не попадут в вашу файловую систему USB-флешки, а в систему, которая уже есть на вашем жестком диске.

Откройте терминал (Ctrl + Alt + T) и выполните следующие команды:

Для 64-битной Ubuntu:

sudo ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6

Для 32-битной Ubuntu:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

libc.so.6 файл присутствует в libc6 пакет.

Вы должны выяснить, из какого хранилища libc6 пакет был установлен на вашем компьютере. (Проверьте /etc/apt/sources.list, так далее).

Затем загрузите его вручную (например, если это был компьютер Debian, использующий репозитории по умолчанию, вы можете загрузить его отсюда), а затем установить его, следуя инструкциям @SamiLaine.

Попробуйте это в корневой оболочке:

ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6

Если libc-2.13.so не подходящая версия для вашей системы, используйте tab-завершение в bash, чтобы найти нужную версию.

Если это не работает, вы можете использовать статически связанную версию ldconfig в корневой оболочке:

/sbin/ldconfig

Если целевая библиотека для ссылок libc была удалена, загрузите пакет debian со страницы Package: libc6, распакуйте его, используя dpkg-deb -X ( справочная страница) и скопируйте libc-2.13.so в /lib/x86_64-linux-gnu, Затем запустите ldconfig, чтобы убедиться, что все ссылки верны.

Другие вопросы по тегам