Где скачать отсутствующий 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, чтобы убедиться, что все ссылки верны.