“sh: /usr/sbin/xenstored:未找到”——但是它在那里?

“sh: /usr/sbin/xenstored:未找到”——但是它在那里?

什么会导致运行文件 /usr/sbin/xenstored 打印

sh: /usr/sbin/xenstored: not found

但是,文件 /usr/sbin/xenstored 在那里并且不是符号链接。

实际上我应该以 root 身份运行它。这会打印出一条类似的奇怪消息。

sudo: unable to execute /usr/sbin/xenstored: No such file or directory

顺便说一句,xenstored 不是一个脚本,它是一个 ELF 可执行文件。

我猜是因为我没有安装所有依赖库。不过,我期望它会显示如下内容:

./xenstored: error while loading shared libraries: libxenctrl.so.4.0: cannot open shared object file: No such file or directory

在没有所有必需库的系统上运行 xenstored 时,情况确实如此。为什么我会得到“未找到”而不是更有用的“无法打开共享对象文件”?

答案1

事实证明它缺少一些库。我发现我的情况是,我有一个 32 位用户空间和一个 64 位内核。我预计两者都是 64 位的,但事实并非如此。

问题是我需要安装 64 位运行时链接器 ld.so 以及 xenstored 和其他 xen 应用程序所需的所有 64 位共享库,并将它们放入正确的路径。完成后,它就可以正常工作了。

相关内容