Cách bật khả năng tương thích nhị phân 32 bit trên Linux Mint 11 x64


8

Gần đây tôi đã cài đặt x64 Linux Mint 11, về cơ bản là Ubuntu Natty. Kể từ khi cài đặt, tôi thấy rằng các ứng dụng 32 bit được sử dụng để chạy trên hệ thống Ubuntu của tôi đã bị hệ thống Mint 11 của tôi từ chối. Khi tôi sử dụng tiện ích 'tập tin' để kiểm tra nhị phân, nó sẽ xác định chính xác nó là một yêu tinh 32 bit, nhưng tôi không thể gọi ứng dụng.

Tôi đã thử khởi động nó từ bash và os.system a la python, nhưng không có kết quả, vì vậy tôi nghi ngờ rằng nó phải có liên quan đến chế độ tương thích nhị phân 32 bit nhưng kiến ​​thức của tôi về hệ thống phụ đó và cách kích hoạt nó Có giới hạn, bất cứ ai có thể giúp đỡ?

Cảm ơn


+1 thx để hỏi. Tôi chỉ chuyển từ natty sang Mint là tốt!
Alain Pannetier

Câu trả lời:


5

Cài đặt ia32-libs và đảm bảo tệp ứng dụng được đánh dấu là có thể thực thi được, điều đó sẽ thực hiện công việc! :)

Chỉnh sửa muộn:

Lib có thể được gọi là ia32-libs-multiarch thay vì ia32-libs.
apt-get install ia32-libs-multiarch


Tuyệt vời, nó hoạt động hoàn hảo, cảm ơn!. Tôi có một chút không chắc chắn chính xác lý do tại sao nó hoạt động?, Ngay cả khi tôi đã thiếu các lib trước đó, ldd ít nhất sẽ liệt kê các tệp đối tượng được chia sẻ bắt buộc. Trước khi cài đặt ia32-libs, ldd chỉ đơn giản nói rằng nhị phân không phải là một tệp thực thi được liên kết động, có một số nước sốt bí mật khác mà ia32-libs sử dụng để làm cho các ứng dụng 32 bit chạy không?
Gearoid Murphy

Tôi không chắc chắn trung thực, nhưng đó là những gì làm việc cho tôi! :) (ps Đánh dấu câu trả lời nếu bạn thích nó!). :)
Ruairi Fullam

Thật thú vị, tôi đã xóa ia32-libs và chương trình thực thi vẫn hoạt động (được liên kết tĩnh), sau khi kiểm tra kỹ hơn về đầu ra từ 'lsmod', tôi có thể thấy rằng có một mô-đun gọi là "binfmt_misc", đây là những gì tôi đang đề cập đến, tôi khá chắc chắn rằng đó là yêu cầu chính để hỗ trợ các định dạng nhị phân thay thế, chẳng hạn như exe 32-bit hoặc COFF từ Windows.
Gearoid Murphy

2

Tôi không biết gì về MINT, nhưng tôi có một số kinh nghiệm với Debian: Để chạy các tệp nhị phân 32 bit bạn cần trong hầu hết mọi trường hợp các thư viện hỗ trợ nhị phân 32 bit trong môi trường 64 bit. Thử

apt-get install ia32-libs

Nếu có apt-get trên hệ thống của bạn ... (hoặc thử apt apt hoặc bất cứ điều gì đi kèm với MINT)

Bạn có thể kiểm tra thư viện nào là cần thiết bằng 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)

Nếu có bất kỳ thư viện bị thiếu, ldd sẽ cho bạn biết.


Khi tôi sử dụng ldd trên tệp nhị phân 32 bit trước khi cài đặt ia32-lib, nó đã trả về lỗi nói rằng tệp nhị phân không phải là tệp thực thi được liên kết động, tôi biết rằng có một mô-đun hạt nhân được xây dựng để xử lý các định dạng thực thi khác nhau và tôi đã dự đoán rằng đây là những gì cần được cấu hình để cho phép tương thích nhị phân 32 bit.
Gearoid Murphy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.