您已经升级了libc(最基本的系统库),现在没有程序可用。确切地说,没有动态链接的程序起作用。
在您的特定情况下,重新启动应该可以工作。现在安装的libc需要更新的内核,如果重新启动,则应获取该更新的内核。
只要您仍然有一个运行中的shell,通常就有一种恢复方法,但是如果您没有计划的话,这可能会很棘手。如果您没有外壳,那么通常除了重启外别无选择。
在这里,不重新启动可能无法恢复,但是至少可以轻松找出正在运行的内核。只需使用/proc/version
不需要外部命令的阅读方式即可。
read v </proc/version; echo $v
echo $(</proc/version) # in zsh/bash/ksh
如果仍然有旧libc的副本,则可以使用它来运行程序。例如,如果旧的libc在其中,/old/lib
并且您在中具有与此旧的libc一起使用的可执行文件,则/old/bin
可以运行
LD_LIBRARY_PATH=/old/lib /old/lib/ld-linux.so.2 /old/bin/uname
如果您有一些静态链接的二进制文件,它们仍然可以使用。我建议针对这种问题安装统计链接的系统实用程序(但是您必须在问题开始之前进行此操作)。例如,在Debian / Ubuntu / Mint /…上,安装一个或多个busybox-static(基本的Linux命令行工具的集合,包括一个shell),sash(带有一些额外内置函数的shell),zsh-static(仅一个shell,但是内置了许多方便的工具)。
busybox-static uname
sash -c '-cat /proc/version'
zsh-static -c '</proc/version'