Tempat mengunduh libc.so.6 yang hilang

2

Saya baru-baru ini secara tidak sengaja menghapus file /lib/x86_64-linux-gnu/libc.so.6.File ini diperlukan oleh sebagian besar program, jadi komputer saya pada dasarnya rusak dan saya hanya dapat mengakses hard drive melalui USB langsung.

Saya menjalankan Crunchbang Waldorf 64-bit, yang berbasis Debian.

Bagaimana saya bisa mengganti libc.so.6? ( /lib64/ tidak mengandung salinan.)

Output darilocate libc.so (pada live USB, dengan hard drive yang rusak terpasang)

/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

Konten /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
LonelyWebCrawler
sumber

Jawaban:

4

Saya akan menganggap USB stick langsung Anda memiliki distribusi yang sama seperti Anda menjalankan sebaliknya atau setidaknya itu adalah yang berbasis Debian.

Dengan asumsi-asumsi itu, boot dahulu sistem Anda dengan stik USB langsung Anda. Kemudian query paket mana yang memiliki file /lib/x86_64-linux-gnu/libc.so.6dengan perintah dpkg -S /lib/x86_64-linux-gnu/libc.so.6(file tersebut akan ternyata dimiliki oleh paket yang disebut "libc6" tetapi ini adalah latihan yang bagus).

Ketika sistem Anda berjalan dari distro langsung USB stick, unduh paket yang diperlukan atau paket dari situs Crunchbang Waldorf .

Kemudian pasang hard disk drive Anda ke beberapa direktori. Sebagai contoh saya akan, sekali lagi, berasumsi bahwa Anda akan me-mount partisi root Anda dari hard disk drive Anda di bawah /mnt.

Maka semua yang tersisa untuk dilakukan adalah menginstal ulang paket yang diperlukan atau menggunakan paket --root /mntarahan untuk dpkg. Dengan begitu paket-paket tersebut tidak akan berakhir pada sistem file USB stick langsung Anda, melainkan ke sistem yang sudah Anda miliki di hard disk Anda.

Sami Laine
sumber
Terima kasih, saya akan segera mencoba ini. Tapi saya bertanya-tanya: Tidakkah mungkin juga untuk boot ke distro yang sama persis dan cukup menyalin file yang hilang dari USB ke hard drive? Atau akankah ini mengacaukan kemasan?
LonelyWebCrawler
2
Kemungkinan besar itu akan berfungsi, tetapi jika Anda menjalankan beberapa pembaruan pada sistem di hard disk Anda, file pada sistem USB live Anda mungkin tidak sama. Apa yang saya sarankan di atas bukanlah satu-satunya cara untuk memperbaikinya (yang lain adalah mengunduh versi yang sama persis dari paket-deb, membongkar dan menyalin file dengan tangan, tetapi kemudian Anda sebaiknya menggunakan dpkg kemudian).
Sami Laine
Tolong bantu, Sami! Saya tidak dapat menemukan paket libc.so.6di paket.crunchbang.org .
LonelyWebCrawler
Saya pikir ini yang ini . Seperti yang diinstruksikan: unduh terlebih dahulu lalu instal menggunakan dpkg.
agtoever
1

The libc.so.6file hadir dalam libc6paket.

Anda harus mencari tahu dari repositori apa libc6paket itu diinstal pada mesin Anda. (Periksa /etc/apt/sources.list, dll).

Kemudian unduh secara manual (Misalnya, jika itu adalah mesin Debian menggunakan repositori default, Anda dapat mengunduhnya dari sini ), lalu menginstalnya menggunakan instruksi yang disediakan oleh @SamiLaine.

Orang Brasil itu
sumber
Maaf, saya tidak begitu baik dengan paket dan tidak begitu mengerti. Paket ini libc6, tetapi di mana saya menemukannya? Saya telah menempel konten /etc/apt/sources.listdi pos.
LonelyWebCrawler
0

Buka terminal ( Ctrl + Alt + T ) dan jalankan perintah berikut:

Untuk Ubuntu 64-bit:

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

Untuk Ubuntu 32-bit:

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

Jollyfreak
sumber
Usaha yang bagus. Sayangnya saya tidak memiliki /lib64/x86_64-linux-gnu/direktori (saya juga tidak menggunakan Ubuntu).
LonelyWebCrawler
0

Coba ini di root shell:

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

Jika libc-2.13.sobukan versi yang tepat untuk sistem Anda, gunakan penyelesaian tab di bash untuk menemukan yang tepat.

Jika ini tidak berhasil, Anda bisa mengikuti dengan versi ldconfig yang terhubung secara statis di shell root:

/sbin/ldconfig

Jika pustaka target untuk tautan libc telah dihapus, unduh paket debian dari halaman Package: libc6 , buka kemasannya menggunakan dpkg-deb -X( halaman manual ) dan salin libc-2.13.soke /lib/x86_64-linux-gnu. Kemudian jalankan ldconfig untuk memastikan bahwa semua tautan benar.

harrymc
sumber
Saya menghapus libc.so.6melalui membuat tautan serupa, jadi permisi jika saya sedikit skeptis. Apakah libc-2.13 (dalam kasus saya) dan libc.so.6 identik? Mengapa saya harus menempatkan libc.so.6di /lib64/dan tidak dalam /lib/x86_64-linux-gnu/, di mana saya dihapus dari?
LonelyWebCrawler
Jika Anda belum menghapus pustaka yang merupakan sumber dari semua tautan ini, mungkin ada baiknya mencoba ldconfig yang membangun kembali semua tautan. Anda bisa menggunakan -vparameter verbose untuk info lebih lanjut.
harrymc
Sayangnya saya memang menghapus perpustakaan — ini rumit.
LonelyWebCrawler
Saya menambahkan beberapa saran di atas untuk kasus ini.
harrymc
Maaf, saya salah paham dengan Anda. Saya masih punya libc-2.13.so(meski tidak 2.19). Saya akan mencoba tautan di atas.
LonelyWebCrawler