![执行 Linux 二进制文件](https://linux22.com/image/595518/%E6%89%A7%E8%A1%8C%20Linux%20%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6.png)
今天我遇到了一件非常奇怪的事情,我不知道这是否与我的操作系统或虚拟化有关。我一直在运行游戏服务器二进制文件,它们一直都运行正常。一个简单的 ./binary +parameters 就可以很好地完成工作,但今天我想将所有内容复制到我最近购买的 VPS 中。它与以前一样,Debian (XEN)。因此,在新的 VPS 上,当我在没有任何权限的情况下执行 ./binary 时,它会显示权限被拒绝。现在这非常合乎逻辑,因为我必须对文件执行“chmod a+x”才能使其工作,但即使完成后,它也会显示“文件丢失”,尽管它在另一台机器上运行良好。可能出了什么问题?
答案1
如果二进制文件依赖于新服务器中缺少的某些可加载库,则通常会显示以下内容:
error while loading shared libraries: libfoobar.so.42: cannot open shared object file: No such file or directory
但我不确定这是一个通用/标准化的信息。
您可以使用该工具检查动态链接ldd(1)
并查找未解析的库(它们通常用 标记"=> not found"
)
另一方面,也许您的二进制文件正在加载和启动,没有任何问题,它只是在检查它想要的一些文件,但没有找到它们,并且是您的二进制文件(而不是动态库加载器)打印了该消息。如果您没有收到除“文件丢失”之外的任何其他消息,我怀疑这就是您遇到的情况,您应该查看二进制文件文档(如果有)。