Cara mengaktifkan kompatibilitas biner 32-bit di Linux Mint 11 x64

8

Saya baru saja menginstal x64 Linux Mint 11, pada dasarnya Ubuntu Natty. Sejak instalasi saya menemukan bahwa aplikasi 32-bit yang digunakan untuk berjalan pada sistem Ubuntu saya ditolak oleh sistem Mint 11 saya. Ketika saya menggunakan utilitas 'file' untuk memeriksa biner, ia dengan benar mengidentifikasikannya sebagai elf 32-bit, tetapi saya tidak dapat menjalankan aplikasi.

Saya sudah mencoba memulainya dari bash dan os.sistem a la python, tetapi tidak berhasil, jadi saya curiga pasti ada hubungannya dengan mode kompatibilitas biner 32-bit tetapi pengetahuan saya tentang sub-sistem itu dan bagaimana mengaktifkannya terbatas, adakah yang bisa membantu?

Terima kasih

Murphy Gearoid
sumber
+1 terima kasih untuk bertanya. Saya baru saja pindah dari natty ke Mint juga!
Alain Pannetier

Jawaban:

5

Instal ia32-libs dan pastikan file aplikasi ditandai sebagai executable, yang seharusnya melakukan pekerjaan! :)

Edit Terlambat:

Lib mungkin bisa disebut ia32-libs-multiarch bukan ia32-libs.
apt-get install ia32-libs-multiarch

Ruairi Fullam
sumber
Luar biasa, itu bekerja dengan sempurna, terima kasih !. Saya agak tidak yakin persis mengapa itu bekerja ?, bahkan jika saya kehilangan libs sebelumnya, ldd akan setidaknya mendaftarkan file objek bersama yang diperlukan. Sebelum menginstal ia32-libs, ldd hanya akan mengatakan bahwa biner itu tidak dapat dieksekusi secara dinamis, apakah ada beberapa saus rahasia lain yang ia32-libs gunakan untuk membuat aplikasi 32-bit berjalan?
Gearoid Murphy
Saya tidak yakin jujur, tapi itu yang berhasil buat saya! :) (ps Tandai jawabannya jika Anda suka!). :)
Ruairi Fullam
Menarik, saya menghapus ia32-libs dan executable masih bekerja (ini terhubung secara statis), setelah pemeriksaan lebih dekat dari output dari 'lsmod', saya dapat melihat bahwa ada modul yang disebut "binfmt_misc", ini yang saya maksudkan, saya mengacu cukup yakin itulah persyaratan utama untuk mendukung format biner alternatif, seperti 32-bit atau COFF exe dari Windows.
Gearoid Murphy
2

Saya tidak tahu apa-apa tentang MINT, tetapi saya punya pengalaman dengan Debian: Untuk menjalankan binari 32bit, Anda membutuhkan hampir semua perpustakaan yang mendukung binari 32bit dalam lingkungan 64bit. Mencoba

apt-get install ia32-libs

Jika ada apt-get di sistem Anda ... (atau coba aptitude atau apa pun yang disertai dengan MINT)

Anda dapat memeriksa perpustakaan mana yang dibutuhkan menggunakan ldd :

lofi:~# ldd /bin/ping
linux-vdso.so.1 =>  (0x00007ffff7dff000)
libc.so.6 => /lib/libc.so.6 (0x00007fd872ed1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd87323c000)

Jika ada perpustakaan yang hilang, ldd akan memberi tahu Anda.

trurl
sumber
Ketika saya menggunakan ldd pada biner 32-bit sebelum saya menginstal ia32-libs, ia mengembalikan kesalahan dengan mengatakan bahwa biner itu bukan executable yang terhubung secara dinamis, saya tahu bahwa ada modul kernel yang dibangun untuk menangani berbagai format yang dapat dieksekusi dan saya telah mengantisipasi bahwa ini adalah apa yang perlu dikonfigurasi untuk mengaktifkan kompatibilitas biner 32-bit.
Gearoid Murphy