【问题标题】:Linux: Moved `/lib/x86_64-linux-gnu/ld-2.28.so` and now SSH is dead [closed]Linux:移动了`/lib/x86_64-linux-gnu/ld-2.28.so`,现在SSH已经死了[关闭]
【发布时间】:2020-03-25 14:09:34
【问题描述】:

问题基本上已经在标题中:因为我无法升级libc6 我按照输出告诉我的操作:删除(或移动)/lib/x86_64-linux-gnu/ld-2.28.so

A copy of the C library was found in an unexpected directory:
  '/lib/x86_64-linux-gnu/ld-2.28.so'
It is not safe to upgrade the C library in this situation;
please remove that copy of the C library or get it out of
'/lib/x86_64-linux-gnu' and try again.

但是在执行 mv 命令之后,ssh 正在做一些奇怪的事情,例如:

~$ mv
-bash: /usr/bin/mv: No such file or directory

如您所见,我在我的主目录 ~ 中,但不知何故 Linux 认为我在 /usr/bin/mv 中。知道如何通过 SSH 恢复“正常”吗?

【问题讨论】:

    标签: linux debian libc


    【解决方案1】:

    发生错误是因为无法再找到程序解释器(glibc 动态加载器)。升级错误消息是由bug #954915: [libc6] upgrade fail: A copy of the C library was found in an unexpected directory 引起的。它的建议是不正确的,并且遵循它会破坏系统。

    如果您没有安装静态链接的工具集合(busyboxsashsln),则必须从应急媒体启动并撤消移动。如果您有一个以 root 身份运行的打开程序(例如编辑器),您可以避免这种情况,这可以在预期位置制作动态加载程序的副本。

    【讨论】:

    • 所以如果我没有以 root 身份运行的打开程序,有没有办法通过 SSH 解决这个问题?
    • 并非如此。您需要 root 权限来解决此问题,并且可以为您提供 root 权限的程序(例如 sudo)需要动态加载程序,因为它们不是静态链接的。
    【解决方案2】:

    mv 在 Ubuntu 上位于 /bin/mv 下,但您应该检查 PATH 环境变量,如 echo $PATH。 以上错误表示PATH 变量不包含此/usr/bin 路径。 要添加此路径,请尝试在您的终端上运行此命令。 export PATH=$PATH:/usr/bin。 另外,您可以检查mv 是否可用 which mv

    【讨论】:

    • export PATH=$PATH:/usr/bin 没有改变任何东西
    • 请发布您的echo $PATH结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2019-07-23
    • 2022-10-08
    • 2019-02-23
    • 1970-01-01
    • 2014-10-14
    相关资源
    最近更新 更多