现有可执行文件的路径或目录不存在

我刚刚从Ubuntu 11.04 32位升级到了Ubuntu 11.10 x64。但是我发现一个非常烦人的问题。当我将可执行文件从文件浏览器拖到shell中时,shell会显示:
bash: /home/fenfei/app/android-sdk-linux/platform-tools/adb: 没有那个文件或目录
它就在那里。我还遇到了执行.../java的问题。所以我删除了java,重新提取了java包,然后执行它,它可以工作了。但是对于/home/fenfei/app/android-sdk-linux/platform-tools/adb这个方法不起作用。它们都被标记为可执行文件。
有人能帮帮我吗?

1请将`ls -ahl /home/fenfei/app/android-sdk-linux/platform-tools/adb'的输出添加到您的问题中。 - xubuntix
3个回答

如果你不想把电脑填满你不需要的i386库文件。
对于adb,你只需要:
sudo apt-get install libc6:i386 libstdc++6:i386

对于 aapt,您需要添加以下内容:
sudo apt-get install zlib1g:i386

你可以通过运行以下命令来查看可执行文件所需的所有库:
objdump -x .../adb | grep NEEDED

一些猜测和搜索仍然需要来找到包含这些文件的软件包。http://packages.ubuntu.com/ 的“搜索软件包内容”是一个很好的地方来进行这样的操作。记得要添加 i386 作为架构。

1谢谢,objdump帮助我找到了我试图运行的应用程序中缺失的依赖项。 - Ash
非常有帮助。不过,我不确定你是如何从objdump的输出中提取出那些库的。 - wulftone
这是唯一在13.10版本上有效的方法。我注意到我并不需要libncurses5:i386 - phunehehe
3在Ubuntu 14.04上对我有效。别忘了在运行之前执行sudo dpkg --add-architecture i386 && sudo apt-get update - Morgan Courbet
最近我也遇到了同样的问题。我绝对猜不到是32/64位不兼容造成的!非常感谢! - jpaugh

显示消息"没有此文件或目录"是因为缺少共享库。您可以使用ldd命令查看这些内容:

ldd /home/fenfei/app/android-sdk-linux/platform-tools/adb

可能你缺少32位的库文件。你需要安装以下内容:
apt-get install ia32-libs

在Ubuntu 13-10上,ia32-libs不再可用;相反,安装替代包:
apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

非常感谢。这正是问题所在。因为Android SDK在Linux上没有x64版本。安装ia32-libs后,ADB运行良好。 - Fenfei
3我安装完软件开发工具包(SDK)后总是忘记这个! - davidcesarino
13.10似乎没有ia32-libsia32-libs-multiarch - phunehehe