微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ubuntu – -bash:./ flume:没有这样的文件或目录,但有水槽,并在其他地方工作

我们有一个基于CentOS 4 32位 Linux的产品,它在32位和64位CentOS / RHEL 4和5以及SLES 10上运行时未经修改.它还在SLES 9 64位上未经修改. [SLES 9 32位需要不同的libstdc.

主二进制可执行文件名称是flume

昨天我们尝试将它放在64位Ubuntu 10上,即使文件存在且尺寸合适,我们也会得到:

-bash: ./flume: No such file or directory

档案水槽
显示它是一个32位ELF(不记得确切的输出,系统是在一个隔离的网络上)

如果放入/usr/local / bin,那么:

which flume
/usr/local/bin/flume

我没试过
ldd flume
然而.

我现在怀疑有些图书馆不存在.

这是一个非常无益的信息,也是我从未见过的信息.

这是Ubuntu特有的,还是仅仅是这个装置.

我们放弃并转移到RHEL 4系统,一切都很好.但我肯定想知道是什么原因造成的.

如果存在水槽但是它的“加载器”不存在,你可以得到这个消息

>本机可执行文件的加载程序是其动态加载程序,例如/lib/ld-linux.so.2;
>脚本的加载程序是其shebang行中提到的程序,例如/ bin / sh,如果脚本以#!/ bin / sh开头.

在您的情况下,看起来您没有在64位Ubuntu系统上安装32位动态加载程序.它位于libc6-i386包中.

字符串./flume | head -n 1将显示水槽所需的动态加载程序的路径.这是一种罕见的情况,其中strace ./flume完全无益.

我认为这种情况是Unix最误导性的错误信息.不幸的是修复它会很难:内核只能向程序的调用者报告一个数字错误代码,所以它只有“找不到命令”的空间而不是它正在寻找的加载器的名称.

原文地址:https://www.jb51.cc/ubuntu/348507.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐