
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; ENOENT
from execve
sugiere que falta un enlazador dinámico.