Ejecutar un ejecutable de 32 bits en un Ubuntu Oneric de 64 bits

Ejecutar un ejecutable de 32 bits en un Ubuntu Oneric de 64 bits

Estoy intentando ejecutar un ejecutable de 32 bits en mi Ubuntu de 64 bits. Aquí una breve descripción de la situación. Pero tengo que anteponer las bibliotecas ia32 que están instaladas:

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

Primero que nada probé el tipo de archivo:

> 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

Estoy usando Oneric de 64 bits, con el kernel no tan reciente, porque aún no lo reinicié.

> 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

Como dije, la ejecución normal no funciona. Aborta con archivo o directorio no encontrado.

> 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
[...]

Aquí está la salida ldd en mi sistema. En mi servidor Debian de 64 bits, el programa se reconoce como un programa vinculado dinámicamente y se pueden ver algunas referencias a la biblioteca en el resultado. Pero en mi Ubuntu:

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

No entiendo lo que está pasando.

Respuesta1

Verifique que tenga libc6-i386 correctamente instalado; ENOENTfrom execvesugiere que falta un enlazador dinámico.

información relacionada