![Linux 执行错误,“未找到”](https://linux22.com/image/1283361/Linux%20%E6%89%A7%E8%A1%8C%E9%94%99%E8%AF%AF%EF%BC%8C%E2%80%9C%E6%9C%AA%E6%89%BE%E5%88%B0%E2%80%9D.png)
运行 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 位系统上运行它。如果是这种情况,有两种解决方案:
你可以获取 64 位版本:http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
或者您可以安装该
ia32-libs
包(无论如何,这是它在 Ubuntu 上的名称)。
答案3
从您的示例来看,脚本似乎说的是“./firefox-bin”。也就是说,它希望 Firefox 可执行文件与脚本位于同一目录中,但这并不能保证。如果您将其替换为文件的完整路径会怎样?