Executando um executável de 32 bits em um Ubuntu Oneric de 64 bits

Executando um executável de 32 bits em um Ubuntu Oneric de 64 bits

Estou tentando executar um executável de 32 bits no meu Ubuntu de 64 bits. Aqui está uma breve visão geral da situação. Mas eu tenho que acrescentar que as bibliotecas ia32 estão instaladas:

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

Primeiro de tudo testei o tipo de arquivo:

> 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

Estou usando Oneric 64bits, com kernel não tão recente, pois ainda não reiniciei.

> 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 eu disse, a execução normal não funciona. Aborta com arquivo ou diretório não 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
[...]

Aqui está a saída do ldd no meu sistema. No meu servidor Debian de 64 bits, o programa é reconhecido como um programa vinculado dinâmico e algumas referências à biblioteca podem ser vistas na saída. Mas no meu Ubuntu:

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

Eu não entendo o que está acontecendo.

Responder1

Verifique se você tem o libc6-i386 instalado corretamente; ENOENTfrom execvesugere um vinculador dinâmico ausente.

informação relacionada