记录下来,我今天已经花了将近6个小时来进行这项工作。我已经用尽了Google和Stack Overflow / 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
内核未符合32位仿真支持。重新启动并选择符合要求的内核可以解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句