奇怪的可执行行为

奇怪的可执行行为

我有一台 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。

答案见https://serverfault.com/questions/288666

答案2

我的猜测是 /home/rodrigo/t_fplayer/flashplayerdebugger 没有正确的格式。事实上,ldd 输出也表明了同样的情况。

执行:file /home/rodrigo/t_fplayer/flashplayerdebugger查看 file 命令对其格式的了解。

它可能是那些奇特的“shell 脚本”之一,它解压 ASCII 编码的文件,然后安装它。专有软件供应商喜欢这种愚蠢的行为。

相关内容