Я недавно случайно удалил файл. /lib/x86_64-linux-gnu/libc.so.6.Этот файл нужен большинству программ, поэтому мой компьютер в основном сломан, и я могу получить доступ к жесткому диску только через работающий USB.
Я использую 64-битный Crunchbang Waldorf, основанный на Debian.
Как я могу заменить libc.so.6? ( /lib64/не содержит копию.)
Выходlocate libc.so (на живом USB, со сломанным жестким диском)
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
I am going to assume your live USB stick has the same distribution as you're running otherwise or at least it is a Debian based one.
With those assumptions first boot your system with your live USB stick. Then query which package owns the file /lib/x86_64-linux-gnu/libc.so.6 with command dpkg -S /lib/x86_64-linux-gnu/libc.so.6 (the file will turn out to be owned by the package called "libc6" but it is a nice exercise anyway).
When you have your system running from a USB stick live distro, download required package or packages from Crunchbang Waldorf site.
Then mount your hard disk drive to some directory. For the sake of example I'm going to, again, assume that you'll be mounting your root partition from your hard disk drive under /mnt.
Then all there is left to do is to re-install the required package or packages using --root /mnt directive for dpkg. That way the packages are not going to end up onto your live USB stick filesystem but instead into the system you already have on your hard disk.
Спасибо, скоро попробую. Но мне интересно: разве нельзя было бы загрузить тот же самый дистрибутив и просто скопировать отсутствующий файл с USB на жесткий диск? Или это испортит упаковку?
LonelyWebCrawler 10 лет назад
0
Скорее всего, это будет работать, но если вы запустили некоторые обновления в системе на жестком диске, файл на вашей системе USB live может не совпадать. То, что я предложил выше, - не единственный способ сделать это правильно (другой способ - загрузить точно такую же версию deb-пакета, распаковать его и скопировать файл вручную, но тогда вы также можете использовать dpkg).
Sami Laine 10 лет назад
2
Пожалуйста, помогите, Сами! Я не могу найти пакет `libc.so.6` на [packages.crunchbang.org] (http://packages.crunchbang.org).
LonelyWebCrawler 10 лет назад
0
Я думаю, что это [этот] (https://packages.debian.org/wheezy/amd64/libc6/download). Как указано: сначала загрузите, а затем установите с помощью dpkg.
agtoever 10 лет назад
0
1
That Brazilian Guy
libc.so.6Файл присутствует в libc6пакете.
Вы должны выяснить, из какого репозитория libc6пакет был установлен на вашем компьютере. (Проверьте /etc/apt/sources.listи т. Д.).
Затем загрузите его вручную (например, если это был компьютер Debian, использующий репозитории по умолчанию, вы можете загрузить его отсюда ), а затем установить его, следуя инструкциям @SamiLaine.
Извините, я не очень хорош с пакетами и не совсем понимаю. Пакет libc6, но где его найти? Я вставил содержимое `/ etc / apt / sources.list` в пост.
LonelyWebCrawler 10 лет назад
0
If libc-2.13.so is not the right version for your system, use tab-completion in bash to find the right one.
If this doesn't work, you could follow with the statically-linked version of ldconfig in a root shell :
/sbin/ldconfig
If the target library for the libc links was deleted, download the debian package from the Package: libc6 page, unpack it using dpkg-deb -X (man page) and copy libc-2.13.so to /lib/x86_64-linux-gnu. Then run ldconfig to ensure that all links are correct.
Я удалил `libc.so.6`, создав аналогичную ссылку, поэтому извините, если я немного скептически отношусь. Являются ли libc-2.13 (в моем случае) и libc.so.6 идентичными? Почему я должен поместить `libc.so.6` в` / lib64 / `, а не в` / lib / x86_64-linux-gnu / `, откуда я его удалил?
LonelyWebCrawler 10 лет назад
0
Если вы не удалили библиотеку, являющуюся источником всех этих ссылок, возможно, стоит попробовать ldconfig, который переустанавливает все ссылки. Вы можете использовать подробный параметр `-v` для получения дополнительной информации.
harrymc 10 лет назад
0
К сожалению, я удалил библиотеку - это сложно.
LonelyWebCrawler 10 лет назад
0
Я добавил выше еще несколько советов для этого случая.
harrymc 10 лет назад
0
Извините, я вас неправильно понял. У меня все еще есть `libc-2.13.so` (хотя не` 2.19`). Я попробую ссылку выше.
LonelyWebCrawler 10 лет назад
0
0
Jollyfreak
Open a terminal (Ctrl+Alt+T) and run the following commands: