我有一台 ubuntu 9.10 的服务器。我正在尝试放置一个可执行文件,结果是最新的 flashplayer (调试器版本)。
不知何故,该文件显示为存在且可执行,但启动它时控制台指示该文件不存在:
$ pwd
/home/rodrigo/t_fplayer
$ ls -lh
total 12M
-rwxr-xr-x 1 rodrigo rodrigo 12M 2011-07-09 11:35 flashplayerdebugger
$ ./flashplayerdebugger
-bash: ./flashplayerdebugger: No such file or directory
$ ldd flashplayerdebugger
not a dynamic executable
在我的本地计算机中使用相同的可执行文件(通过 ssh 复制)可以正常工作。
知道发生了什么事吗?什么可以解释这种行为?知道如何解决这个问题吗?
答案1
该问题似乎是 64 位 <-> 32 位兼容性问题。
~/t_fplayer$ file flashplayerdebugger
flashplayerdebugger: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
解决方案是安装 ia32-libs。
答案2
我的猜测是 /home/rodrigo/t_fplayer/flashplayerdebugger 没有正确的格式。事实上,ldd 输出也表明了同样的情况。
执行:file /home/rodrigo/t_fplayer/flashplayerdebugger
查看 file 命令对其格式的了解。
它可能是那些奇特的“shell 脚本”之一,它解压 ASCII 编码的文件,然后安装它。专有软件供应商喜欢这种愚蠢的行为。