1 votes

Exécution d'un exécutable 32 bits sur un Oneric Ubuntu 64 bits

J'essaie d'exécuter un exécutable 32 bits sur mon Ubuntu 64 bits. Voici un bref aperçu de la situation. Mais je dois préciser que les librairies ia32 sont installées :

> aptitude search ia32
i   ia32-libs - ia32 shared libraries for use on amd64 and ia64 syste

Tout d'abord, j'ai testé le type de fichier :

> file tipp10
tipp10: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

J'utilise Oneric 64bit, avec le noyau pas si récent, car je ne l'ai pas encore redémarré.

> uname -a
Linux christchurch 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Comme je l'ai dit, l'exécution normale ne fonctionne pas. Elle s'arrête avec un fichier ou un répertoire non trouvé.

> strace ./tipp10
execve("./tipp10", ["./tipp10"], [/* 46 vars */]) = -1 ENOENT (No such file or directory)
dup(2)                                  = 3
fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
[...]

Voici la sortie de ldd sur mon système. Sur mon serveur Debian 64bit, le programme est reconnu comme un programme lié dynamique et quelques références à des librairies peuvent être vues dans la sortie. Mais sur mon Ubuntu :

> ldd tipp10
    \tdas Programm ist nicht dynamisch gelinkt
# german for: "The programm is not linked dynamic"

Je ne comprends pas ce qui se passe.

0 votes

Cas intéressant, l'installation de 'ia32-libs' a permis de résoudre le problème. pour moi - C'est-à-dire que je suis capable d'exécuter des applications 32 bits en natif, sans virtualisation. Essayez peut-être d'exécuter sudo aptitude reinstall ia32-libs ?

0 votes

La réinstallation n'a pas fonctionné. J'ai eu un avertissement : /var/lib/dpkg/info/ia32-libs.postinst: 40: /usr/lib32/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders: not found . Mais cela ne semble pas lié.

0 votes

En effet, ce n'est pas le cas. (La raison pour laquelle je demande est que si vous utilisez une version à venir, certaines choses peuvent être cassées dès la sortie de la boîte, d'où la raison pour laquelle il n'est pas recommandé d'utiliser les préversions d'ubuntu).

1voto

Richard Kettlewell Points 806

Vérifiez que vous avez correctement installé libc6-i386 ; ENOENT de execve suggère un linker dynamique manquant.

0 votes

Il était installé, mais une réinstallation l'a réparé. Merci beaucoup.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X