Comment activer la compatibilité binaire 32 bits sur Linux Mint 11 x64


8

J'ai récemment installé x64 Linux Mint 11, essentiellement Ubuntu Natty. Depuis l'installation, j'ai constaté que les applications 32 bits qui fonctionnaient sur mon système Ubuntu sont rejetées par mon système Mint 11. Lorsque j'utilise l'utilitaire 'file' pour vérifier le binaire, il l'identifie correctement comme un elfe 32 bits, mais je ne peux pas appeler l'application.

J'ai essayé de le démarrer depuis bash et os.system à la python, en vain, donc je soupçonne qu'il doit avoir quelque chose à voir avec le mode de compatibilité binaire 32 bits, mais ma connaissance de ce sous-système et comment l'activer est limité, quelqu'un peut-il aider?

Merci


+1 thx pour demander. Je suis également passé de natty à Mint!
Alain Pannetier

Réponses:


5

Installez ia32-libs et assurez-vous que le fichier d'application est marqué comme exécutable, cela devrait faire le travail! :)

Édition tardive:

La lib pourrait éventuellement être appelée ia32-libs-multiarch au lieu de ia32-libs.
apt-get install ia32-libs-multiarch


Excellent, cela a parfaitement fonctionné, merci !. Je ne sais pas exactement pourquoi cela a fonctionné?, Même si je manquais les bibliothèques auparavant, ldd aurait au moins répertorié les fichiers d'objets partagés requis. Avant d'installer ia32-libs, ldd dirait simplement que le binaire n'était pas un exécutable lié dynamiquement, y a-t-il une autre sauce secrète que l'ia32-libs utilise pour faire fonctionner des applications 32 bits?
Gearoid Murphy

Je ne suis pas sûr d'être honnête, mais c'est ce qui a fonctionné pour moi! :) (ps Marquez la réponse si vous l'aimez!). :)
Ruairi Fullam

Intéressant, j'ai supprimé ia32-libs et l'exécutable fonctionnait toujours (il est lié statiquement), après un examen plus approfondi de la sortie de 'lsmod', je peux voir qu'il y a un module appelé "binfmt_misc", c'est à cela que je faisais référence, je à peu près sûr que c'est la principale exigence pour la prise en charge de formats binaires alternatifs, tels que les exe 32 bits ou COFF de Windows.
Gearoid Murphy

2

Je ne sais rien de MINT, mais j'ai une certaine expérience avec Debian: Pour exécuter des binaires 32 bits, vous avez besoin dans presque tous les cas des bibliothèques supportant des binaires 32 bits dans un environnement 64 bits. Essayer

apt-get install ia32-libs

Si theres apt-get sur votre système ... (ou essayez aptitude ou tout ce qui vient avec MINT)

Vous pouvez vérifier quelles bibliothèques sont nécessaires à l'aide de 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)

S'il manque des bibliothèques, ldd vous le dira.


Lorsque j'ai utilisé ldd sur le binaire 32 bits avant d'avoir installé ia32-libs, il a renvoyé une erreur disant que le binaire n'était pas un exécutable lié dynamiquement, je sais qu'il y a un module de noyau construit pour gérer différents formats d'exécutables et j'avais prévu que c'était ce qui devait être configuré afin d'activer la compatibilité binaire 32 bits.
Gearoid Murphy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.