Apakah ada metode mudah untuk menginstal binary glibc?


13

Berkali-kali saya melihat pertanyaan seperti ini:

Dan ini adalah jenis solusi yang biasanya kami dorong:

Apakah ini benar-benar yang terbaik yang bisa kita lakukan? Tidakkah ada binary build dari GLIBC yang dapat kita unzip ke direktori seperti /opt/myglibc, dan atur $LD_LIBRARY_PATHatau apa saja dan jalankan aplikasi apa pun yang kita inginkan, tanpa masalah?

Aplikasi, seperti build baru Chrome (28+) yang tampaknya membutuhkan GLIBC 2.14?

CATATAN: Utas ini berjudul: Google Chrome 29 Dirilis - Instal di RHEL / CentOS 6 dan Fedora 19/15 di tecmint.com yang akhirnya membuat saya berpikir tentang hal ini.

Referensi

Jawaban:


1

Kalau itu untuk perpustakaan lain, tapi glibc ... Saya kira tidak ada cara cepat, karena glibc adalah tempat di mana barang-barang "hard coded". Glibc cocok dengan versi kernel Anda dan loadernya adalah instance yang benar-benar melakukan hal yang benar (TM) LD_LIBRARY_PATH.

Mungkin cara yang benar adalah:

LD_LIBRARY_PATH="/opt/myglibc/;..." /opt/myglibc/ld-linux.so.2 the_program`

Tidak yakin apakah ini berhasil.

Bagaimanapun, saya pikir menggunakan glibc alternatif membutuhkan kerangka kerja yang belum diterapkan, karena jalur pencarian kadang-kadang ditransfer dan glibc selalu harus sesuai dengan OS / kernel Anda, jadi tidak mungkin ada binari generik, IMO. Multiarch Debian menunjukkan bahwa itu tidak sepele, tetapi masih bisa dilakukan. Jika seseorang memiliki beberapa cara lain untuk membedakan perpustakaan selain arsitektur target.

Situs web hanya memberi saya utas terkait lainnya ini:

Di sana, jawaban yang diterima mencakup tautan ke program yang disebut rtldi , yang tampaknya menyelesaikan masalah glibc. Ini dari 2004 jadi mungkin tidak berfungsi langsung dari linker lagi, tapi mungkin layak untuk dilihat. Sumbernya adalah GPLv2.

Jehova, Jehova

Seorang teman saya pernah muncul dengan ide, bahwa penggunaan sebenarnya dari perpustakaan bersama terlalu dibesar-besarkan. Dan dia memang ada benarnya: shared library baik untuk tidak mengisi memori komputer Anda dengan duplikat, tetapi mengingat contoh aplikasi individual ini hanya beberapa MB.

Hanya ada beberapa aplikasi di mana kami akan melakukan tindakan seperti menyediakan mereka glibc mereka sendiri. Menyelamatkan kami analisis yang panjang, sebut saja "aplikasi langsung", yang dapat digunakan sendiri, dalam arti menyelesaikan pekerjaan. Misalnya browser web, agen pengguna surat, setelan kantor, dan pemutar musik memungkinkan pengguna untuk mendapatkan apa yang mereka inginkan dan hanya ada beberapa contoh per pengguna. Untuk memotret sisi lain, layanan sistem, manajer jendela, bahkan seluruh lingkungan desktop semuanya sangat penting, tetapi hanya mendukung dan seringkali tidak cukup umum atau kritis, sehingga orang akan bersedia memberi mereka glibc sendiri.

Jumlah "aplikasi langsung" agak kecil, benar-benar per pengguna dan relatif dibandingkan dengan apa yang "dasar" OS dan DEs menelurkan hari ini. Jika aplikasi langsung, seperti Chrome, Firefox dikompilasi secara statis, kebutuhan memori tambahan untuk sistem rata-rata adalah beberapa MB. Argumen yang tidak berjalan jauh pada banyak sistem GB saat ini sehingga tautan statis untuk aplikasi langsung dapat menjadi pilihan.

Ada juga konsep ruang swap dan SSD yang memungkinkan penukaran / redout yang sangat cepat, yang juga membantu menangani peningkatan kebutuhan memori.

Masalah glibc yang dibahas di sini tidak benar-benar diselesaikan melalui tautan statis, tetapi untuk aplikasi seperti browser web, semacam format distribusi mandiri dapat dipahami, di mana protokol X, beberapa daemon suara dan beberapa metodemetode kernel sebagai satu-satunya antarmuka. Keuntungannya adalah lebih sedikit ketidakcocokan versi perpustakaan.


2
"kita berbicara tentang 100MB di sini" Uh, tidak. Meskipun sebagian besar perpustakaan itu sendiri mungkin tidak sebanyak itu (tapi mungkin urutan besarnya atau dua lebih dari 100 MB - coba du -h /lib), perlu diingat bahwa jika itu dikompilasi secara statis, jumlah RAM yang diperlukan untuk masing - masing dan setiap aplikasi dikompilasi dengan mereka. Jadi jika, mis. Anda memiliki dua aplikasi menggunakan tumpukan perpustakaan yang sama, sekarang Anda akan membutuhkan memori dua kali lebih banyak. Tiga aplikasi? Tiga kali lipat. Belum lagi sebagian besar akan meniadakan manfaat caching ...
goldilocks

2
... karena, tentu saja, Anda tidak bisa hanya melakukan cache glibc - Anda harus menyimpan salinan setiap aplikasi yang dijalankan (== konyol). Singkatnya, sistem operasi modern akan jelas dan sederhana sama sekali tidak mungkin pada perangkat keras modern jika bukan karena teknik modern seperti objek bersama. Anda tidak perlu hanya sedikit lebih banyak memori - Anda akan membutuhkan 10 atau 100 kali lebih banyak memori.
goldilocks

Debian saya memiliki 235MB /lib, yang mana 202MB adalah modul kernel. Ya, /usr/lib4GB, tapi itu memungkinkan tidak ada kesimpulan pada seberapa banyak program individu membutuhkan. Tembolok prosesor hanya beberapa MB. Dengan konsumsi memori seperti browser web baru-baru ini, dampak dari binari yang terhubung secara statis pada caching juga tidak sebesar itu dan berkurang dengan jumlah yang secara bersamaan menjalankan program; juga karena alasan cache yang relatif kecil. Perkiraan saya tampaknya lebih akurat daripada milik Anda. Ya, ya.
Bananguin

Belum lagi masalah besar lainnya dengan tautan statis — pembaruan adalah PITA. Jika ada masalah keamanan di glibc, bukan masalah besar: tingkatkan glibc, mulai ulang program Anda. OTOH, jika program Anda terhubung secara statis, Anda harus mengunduh versi baru dari setiap program. Dan distro Anda harus mengkompilasi ulang (atau setidaknya menautkan kembali, jika mereka menyimpan semua file .o, tidak mungkin karena ukuran besar) seluruh distro.
derobert

1
@derobert: Tampaknya adil. Jelas klaim saya hiperbolik - di sini dengan komitmen 1,8 GB yang meludahkan 521 MB. Jadi itu akan menjadi peningkatan 30%. Tentu saja, itu masih bukan titik penjualan untuk strategi yang tidak memiliki kelebihan (tetapi "hanya membutuhkan 30% lebih banyak RAM").
goldilocks
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.