Я пытаюсь запустить 32-битный исполняемый файл на моем 64-битном языке. Вот краткий обзор ситуации. Но у меня есть preend ia32 libs установлены:
> aptitude search ia32
i ia32-libs - ia32 shared libraries for use on amd64 and ia64 syste
Прежде всего, я протестировал тип файла:
> 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
Я использую 64-разрядный oneric, с не столь последним ядром , потому что я еще не перезапустился.
> 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
Как я уже сказал, нормальное выполнение не работает. Он прерывается с отсутствием файла или каталога.
> 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
[...]
Здесь вывод ldd в моей системе. На моем 64-битном сервере Debian программа реконструируется как динамически связанная программа, и выводится несколько ссылок на lib. Но на моем ubuntu:
> ldd tipp10
\tdas Programm ist nicht dynamisch gelinkt
# german for: "The programm is not linked dynamic"
Может кто-нибудь мне помочь. Я не понимаю, что происходит.
Это помогает мне:
sudo apt-get install --reinstall libc6-i386
sudo apt-get install libgl1-mesa-glx:i386 lsb-core
Источник: https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/852101?comments=all