The kernel was not complied with 32-bit emulation support. Rebooting and choosing a kernel with it complied resolved this issue.
Невозможно запустить 32-битный динамический исполняемый файл в 64-битной Ubuntu
1204
Chris Olin
Для справки, я потратил сегодня почти 6 часов, работая над этим. Я исчерпал Google и другие подобные вопросы о переполнении стека / Superuser и других различных списках рассылки.
Я пытаюсь запустить следующее приложение:
# file ./ncsvc ./ncsvc: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped # ls -la ncsvc -rws--s--x 1 root root 1931688 Dec 19 20:41 ncsvc
Я использую 64-битную версию Ubuntu:
# uname -m x86_64
Теперь, с этим прошлым нами, вот некоторые подробности о библиотеках, в которых нуждается это приложение:
# readelf -a ./ncsvc | grep interpreter [Requesting program interpreter: /lib/ld-linux.so.2] # readelf -a ./ncsvc | grep NEEDED 0x00000001 (NEEDED) Shared library: [libdl.so.2] 0x00000001 (NEEDED) Shared library: [libz.so.1] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libc.so.6]
Вот где я застреваю:
# ls -la /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 32 Dec 19 23:31 /lib/ld-linux.so.2 -> /lib/x86_64-linux-gnu/ld-2.15.so # locate libdl.so.2 /lib/i386-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libdl.so.2 # locate libz.so.1 /lib/i386-linux-gnu/libz.so.1 /lib/i386-linux-gnu/libz.so.1.2.3.4 /lib/x86_64-linux-gnu/libz.so.1 /lib/x86_64-linux-gnu/libz.so.1.2.3.4 # locate libpthread.so.0 /lib/i386-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libpthread.so.0 # locate libm.so.6 /lib/i386-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6 # locate libc.so.6 /lib/i386-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6
Насколько я могу судить, у меня есть динамический компоновщик и все общие библиотеки, которые ему нужны для запуска (tl; dr: ia32-libs IS установлен). За исключением случаев, когда я запускаю его, я получаю эту ошибку.
# ./ncsvc bash: ./ncsvc: cannot execute binary file
Наконец, я не уверен, означает ли это что-нибудь полезное.
# ldd -v ./ncsvc not a dynamic executable
у вас есть доступ к исходному коду? Просто восстановите это ...
MattDMo 10 лет назад
0
Если это не было ясно прежде, позвольте мне объяснить это. У меня нет доступа к источнику. Это частная собственность, и владелец (Juniper) не выпустил 64-битную версию. Другие люди, кажется, заставили его работать в 64-битных средах без проблем.
Chris Olin 10 лет назад
0
1 ответ на вопрос
0
Chris Olin
Похожие вопросы
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
8
Ожидание ноутбука в Linux / Ubuntu
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
-
3
Могу ли я запустить Microsoft Office 2007 под Ubuntu?
-
6
Virtualbox, VMware, KVM или другое для виртуализации Ubuntu?
-
4
Функция Windows 7 «Aero Snap» в Ubuntu GNOME
-
2
Распознавание отпечатков пальцев в Vista x64
-
5
64-битная ОС и программное обеспечение VPN
-
5
ПО для управления iPod для Linux
-
8
Должен ли я выбрать 32 или 64 бит для Linux?