Bagaimana cara meningkatkan glibc dengan benar?

10

Firmware NAS saya hadir dengan versi yang agak lama glibc, yaitu 2.5. Untuk mengatasi beberapa binari yang telah dikompilasi yang tertaut * ke glibc2.15, saya ingin memutakhirkannya. Dari beberapa pengujian sederhana di chrootlingkungan saya belajar cukup menambahkan yang lebih baru libc-2.15.sodan memperbarui symlink libc.so.6akan menghasilkan sistem yang tidak dapat digunakan; mungkin karena libc-2.15.soterkait ld-linux.so.3pada gilirannya, yang tentu saja juga akan memerlukan versi 2.15 bukan versi 2.5. Tetapi sebelum saya turun ke terlalu banyak trial and error,

apa prosedur yang benar untuk memutakhirkan glibc secara manual?


* meskipun ditautkan "secara statis", mereka masih terhubung secara dinamis ke glibc ...

Tobias Kienzler
sumber
"Untuk mengatasi beberapa binari yang telah dikompilasi (meskipun dihubungkan" secara statis ", mereka masih secara dinamis terhubung ke glibc ...) terkait dengan glibc 2.15." Mengambil tanda kurung, ini mengurangi menjadi "Untuk mengatasi beberapa binari yang telah dikompilasi terkait dengan glibc 2.15.". Saya tidak yakin apa artinya itu.
Faheem Mitha
@FaheemMitha Terima kasih telah menunjukkan hal itu, saya tidak pernah menyadari saya lupa menyelesaikan kalimat itu - semoga lebih masuk akal sekarang
Tobias Kienzler
Ya, ini berbunyi lebih baik sekarang, meskipun memiliki braket tertanam tidak membantu dengan kejelasan. Saya berasumsi bahwa membangun kembali firmware dengan libc yang lebih baru bukanlah suatu pilihan?
Faheem Mitha
@FaheemMitha Dihancurkan sekarang. Tidak, firmware sayangnya berisi beberapa komponen berpemilik: /
Tobias Kienzler
Kota Nitpick. Anda menandai teks Anda dengan *, tetapi menggunakan 1 di "catatan kaki" Anda. Ya, itulah (bagian dari alasannya) perangkat lunak berpemilik itu menyebalkan. Mencari firmware pihak ketiga gratis mungkin? Atau kembangkan sendiri. Lebih mudah diucapkan daripada dilakukan, dikabulkan.
Faheem Mitha

Jawaban:

7

Memutakhirkan perpustakaan standar berisiko, karena beberapa program dan perpustakaan mungkin bergantung pada versi saat ini.

Rekomendasi saya jika Anda perlu menjalankan program yang lebih baru adalah menginstal distribusi chroot penuh . Ini membutuhkan lebih banyak ruang disk, tetapi jauh lebih sederhana dan kurang berisiko daripada mencoba memperbarui libc. Debian menyediakan alat untuk memfasilitasi instalasi di chroot: debootstrap . Lihat Menginstal dua glibc bersama di debian / ubuntu (situasi yang sangat mirip) untuk penjelasan lebih lanjut dan Bagaimana cara menjalankan program 32-bit pada 64-bit Debian / Ubuntu? untuk petunjuk lengkap dalam situasi yang sedikit berbeda.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
2
Saya sangat takut ... Sebenarnya saat ini saya menggunakan instalasi Gentoo yang di-chroot. Untuk mengkompilasi binari out-of-chroot, mungkin lebih mudah untuk menurunkan versi Gentoo's glibc, atau menggunakan versi yang cukup lama ... Kemudian lagi saya sangat ragu (atau setidaknya berharap tidak) ini adalah jawaban terakhir.
Tobias Kienzler
Apa yang Anda maksud dengan mengatakan upgrade glibc "berisiko"? Glibc kompatibel ke belakang, sehingga seharusnya berfungsi atau apakah saya tidak mengerti sesuatu di sini?
Nils
3
@Nils Apa yang Anda lewatkan adalah perbedaan antara seharusnya dan tidak . Program terkadang bergantung pada perilaku tidak berdokumen yang berubah antar versi.
Gilles 'SANGAT berhenti menjadi jahat'