命令和二进制文件存在但无法执行

Lau*_*ris 6 debian apt command

我将/etc/*文件从一台 Linux 服务器传输到另一台,现在出现了一个奇怪的错误。两者都是 Debian Squeeze。

当我运行一个命令时,例如ssh,我收到一个错误:

bash: /usr/bin/ssh: 没有那个文件或目录

看起来二进制文件存在:

-rwxr-xr-x 1 根 358756 9 月 21 日 14:30 /usr/bin/ssh

当我键入ss并按时,Bash 还会自动完成命令Tab。我尝试重新安装,清除等,但它没有解决任何问题。可能有一些缓存在下面,/etc/但我不知道具体是什么。

Gil*_*il' 4

我认为吉姆·帕里斯的评论是正确的。即使指定的文件存在,如果该文件的动态加载器不存在,您也可以获得 \xe2\x80\x9cno 这样的文件或目录\xe2\x80\x9d。一种常见的情况是尝试从内核支持但不支持用户空间系统 \xe2\x80\x94 的不同体系结构运行二进制文件,通常是没有 32 位系统的 64 位系统上的 32 位二进制文​​件安装位库。有关该情况的更详细说明,请参阅在 64 位系统上运行 32 位二进制文​​件时收到“未找到”消息。

\n\n

在这里,可能会/usr/bin/ssh使用安装在新系统上不同位置的库。由于您复制了动态链接器的缓存文件/etc/ld.so.cache,因此动态链接器正在不存在的位置查找该库。运行ldconfig以更新缓存。

\n\n

您也可能启用了预链接。如果是这样,请删除/etc/prelink.cache.

\n