我正在尝试在 x86_64 机器上的 Ubuntu 20.04 上运行较旧的 32 位二进制文件。这是来自
file
的二进制文件的简介:
$ file /usr/local/diamond/3.13/modeltech/linuxloem/vsim
/usr/local/diamond/3.13/modeltech/linuxloem/vsim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b8557f9eb74b21146d0eba49769f30f475422d26, stripped
当我执行二进制文件时,出现此错误:
$ /usr/local/diamond/3.13/modeltech/linuxloem/vsim
bash: /usr/local/diamond/3.13/modeltech/linuxloem/vsim: No such file or directory
我不知道问题出在哪里。二进制文件的权限很好(
mwg
是我的用户和组):
$ ls -la /usr/local/diamond/3.13/modeltech/linuxloem/vsim
-rwxr-xr-x 1 mwg mwg 7772676 Jul 18 2023 /usr/local/diamond/3.13/modeltech/linuxloem/vsim
尝试以 root 身份运行二进制文件时也会出现同样的问题(即,在命令前加上
sudo
前缀)。
我唯一能想到的是,这个二进制文件需要
/lib/ld-linux.so.2
处的解释器(来自上面的 file
输出),而我的系统上不存在该路径。 这个答案给了我一个想法,我可能需要apt install binutils
,但我尝试了,但它没有解决问题。
有人对如何运行这个二进制文件有建议吗?或者如何进一步诊断问题?
在我的 Ubuntu 22.04.4 系统上,
/lib/ld-linux.so.2
是 /lib/i386-linux-gnu/ld-linux.so.2
的符号链接。该文件由 libc6:i386
包提供。
安装
libc6:i386
可能会解决问题。