Linux 执行错误,“未找到”

Linux 执行错误,“未找到”

运行 Debian/Crunchbang 时,我尝试运行脚本时遇到奇怪的错误。例如

exec: 392: ./firefox-bin: not found

我以前从未遇到过这种情况,也找不到任何好的信息,有谁能解释一下这意味着什么以及为什么会发生这种情况?

显然“未找到”的文件确实存在于该路径中,并且归我所有,可执行。我也尝试从不同位置执行它,但没有成功。

答案1

如果您确定有问题的文件存在,那么这可能意味着找不到该文件的“解释器”。由于应该firefox-bin是 ELF 可执行文件,因此它的解释器可能类似于/lib/ld-linux.so.2,并且可能缺少该文件。

尝试运行readelf -l ./firefox-bin以找出解释器是什么 - 在输出中查找“[请求程序解释器:/lib/ld-linux.so.2]”行。

答案2

正如 TomH 所说,这可能是因为 firefox-bin 文件的二进制格式错误(“未找到”消息具有误导性)。您可能下载了 32 位版本的 Firefox(Firefox 下载页面仅提供 32 位),并尝试在没有向后兼容库的 64 位系统上运行它。如果是这种情况,有两种解决方案:

答案3

从您的示例来看,脚本似乎说的是“./firefox-bin”。也就是说,它希望 Firefox 可执行文件与脚本位于同一目录中,但这并不能保证。如果您将其替换为文件的完整路径会怎样?

相关内容