Biarkan saya menjelaskan masalah dengan sebuah contoh. Saya menggunakan beberapa program lama di hari ke hari kerja, seperti misalnya xfig dan pdfedit .
Sekarang, program-program ini sudah cukup tua dan tidak terlalu sering diperbarui; Ketakutan saya adalah bahwa suatu hari mereka tidak akan berfungsi lagi karena kurangnya perpustakaan atau pembaruan yang tidak kompatibel.
Jika program ini mudah dikompilasi sekarang , pada sistem yang sedang berjalan, solusinya sangat berguna: cobalah untuk meretas sedikit sumber dan mengompilasinya secara statis --- eksekusi yang dihasilkan akan besar dan tidak begitu efisien, tetapi akan bekerja untuk masa mendatang (1). Ini tampaknya menjadi kasus untuk xfig
dan saya akan mencobanya sesegera mungkin.
Tetapi, misalnya, pdfedit
tergantung pada Qt3, dan menyiapkan sistem untuk mengkompilasinya cukup rumit saat ini. Untungnya itu bisa dijalankan sekarang, berkat fakta bahwa perpustakaan yang dibutuhkan tidak bertentangan dengan apa pun. Tapi ini bisa berubah di masa depan, jadi saya ingin menyelesaikan masalah ini:
Bagaimana saya bisa membuat biner statis (atau yang serupa) jika saya memiliki yang dinamis dan semua pustaka, tetapi tidak ada kode sumber, di Ubuntu?
Saya mencari-cari. Salah satu kemungkinan adalah statifier (2), tetapi memiliki banyak masalah dengan pengacakan alamat , jadi itu adalah tidak-tidak. Versi non-bebas, Ermine , tampaknya berfungsi, tetapi saya benar-benar lebih suka opsi sumber terbuka.
Kemungkinan lain adalah menggunakan buruh pelabuhan atau sistem pengemasan serupa. Tetapi semua tutorial yang saya temukan cukup berorientasi RedHat ; dan, jujur, cukup rumit untuk diikuti.
Catatan kaki :
(1) tidak terlalu gila. Saya menggunakan ffmpeg statis misalnya, berfungsi dengan baik dan tanpa masalah kompatibilitas ...
(2) untuk mengkompilasi statifier
, lihat /programming/23498237/compile-program-for-32bit-on-64bit-linux-os-causes-fatal-error
linux-vdso.so.1
tidak ada tempat untuk dilihat, saya kira itu di kernel, benar?man 7 vdso
: "The" vDSO "(objek bersama dinamis virtual) adalah pustaka bersama kecil yang kernel secara otomatis memetakan ke ruang alamat semua aplikasi ruang pengguna."Satu saran tentang statifier :
Jika address space layout randomization (ASLR) menyebabkannya gagal, Anda tidak harus mematikannya untuk seluruh mesin. Anda dapat mematikannya hanya untuk proses itu:
Ini akan menjalankan perintah itu dengan tata letak acak dinonaktifkan (tidak perlu root).
sumber
statifier
...xfig_statified
masih inti kesedihan ... sangat disayangkan. Bagaimanapun, terima kasih.