Apakah mungkin untuk menginstal dan menggunakan dua versi glibc yang berbeda pada mesin yang sama. Di mana satu versi hanya digunakan untuk menjalankan perangkat lunak warisan, yang bergantung pada binari glibc lama?
Apakah mungkin untuk melakukannya dengan bantuan manajer paket (seperti "instal paket ini, dan dependensinya, untuk /opt/old-glibc
), daripada mengaturnya dengan mengerikan
ubuntu
debian
dynamic-linking
glibc
Elazar Leibovich
sumber
sumber
ldd
akan memberitahumu sesuatu. Jika memungkinkan Anda mungkin perlu mengkompilasi ulang perpustakaan libc lama dan / atau menginstal / mengkompilasi ulang paket-paket pendukung. Bergantung pada usia aplikasi Anda, ini bisa menjadi rumit. Saya melihat Debian saat inilibc6
tergantung padalibc-bin (= 2.13-0exp5)
danlibgcc1
, jadilibc6
tidak memiliki banyak dependensi, tetapi Anda masih bisa mengalami masalah.Jawaban:
Iya itu mungkin. Anda harus sangat berhati-hati dengan lintasan pemuatan perpustakaan, dan Anda mungkin perlu mengkompilasi ulang beberapa perpustakaan lain.
Sebagai jalan yang paling tidak gesekan, saya sarankan untuk menginstal versi Debian atau Ubuntu yang lebih lama di chroot . Yaitu, buat direktori, katakan
/old/etch
, dan instal distribusi yang lebih lama di pohon yang di-root di sana; untuk menjalankan program yang bermasalah itu, panggilchroot
untuk membatasi pandangannya terhadap sistem file/old/etch
.Debian (atau Ubuntu) hadir dengan paket untuk membantu menginstal sistem lain di chroot: schroot (penerus dchroot). Pertama, gunakan debootstrap untuk menginstal distribusi yang lebih lama (instal hanya sistem dasar dan apa yang dibutuhkan program Anda, tidak ada server). Kemudian mendirikan schroot untuk menjalankan program mudah (dengan
/dev
,/proc
,/home
dan lainnya “satelit” filesystem diakses).Jadi rencananya adalah: debootstrap, lalu dchroot. Di Bagaimana cara menjalankan program 32-bit pada Debian / Ubuntu 64-bit? , Saya memberikan tutorial tentang pengaturan serupa - apakah Anda menjalankan versi distribusi yang berbeda, atau arsitektur yang berbeda, atau distribusi seperti Debian yang berbeda, hanya masalah memilih sumber paket yang sesuai, sisanya adalah sama.
sumber
/old/etch
?