我最近安装了一个动态二进制翻译程序来在我的 ARMv8 服务器上运行 x86_64 二进制文件。卸载DBT工具后,我发现了一些奇怪的错误消息,非常令人困惑。
一点背景信息,使用 DBT 工具,我能够输入 bash(为 x86_64 编译)并运行测试,就像在 x86_64 机器上一样。
在我完成测试并决定卸载该程序后,问题发生了。
有时,在 ARM 服务器上(我在使用 rpm 包之前安装了 DBT),如果我运行 x86_64 静态链接的helloworld
二进制文件,输出消息为
-bash: ./helloworld: No such file or directory
但是当我使用file
and时ls
,二进制文件就存在了。
file ./helloworld
./helloworld: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=465941947d84d055552ea628720b94096516c3a7, with debug_info, not stripped
但是,要在我之前没有安装 DBT 工具的另一台 ARM 服务器上运行相同的二进制文件。输出消息是
-bash: ./helloworld: cannot execute binary file: Exec format error
该错误消息是我想要收到的,因为它清楚地指出了二进制文件不匹配的问题。
我关心的是
我可能没有完全卸载DBT工具,但仔细检查rpm包添加的文件后我找不到任何残留物。
我读过诸如此类的帖子https://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists, 和别的。他们似乎遇到了同样的问题,但这些信息对我来说没有用。
任何帮助将不胜感激。