“apt Upgrade”失败后,sudo 不会提示输入密码。我该如何修复?

“apt Upgrade”失败后,sudo 不会提示输入密码。我该如何修复?

在执行“sudo apt update”时,我收到一条消息“加载共享库时出错:libcrypt.so.1”。

当我几分钟后回来时,如果我尝试运行 sudo 我现在得到:

$ sudo -i
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
$

换句话说,sudo 不会提示输入密码。有没有办法来解决这个问题?

该系统是 Raspberry Pi,因此运行 raspbian (debian)。


更新(回应斯蒂芬·基特的评论):

这看起来和 Debian bug 的一个实例一模一样#993755因为它是在我应用升级进行测试时发生的(sid);它正在设置 libc6;它破坏了 perl,进而破坏了 dpkg。

这是升级的尾声......

Preparing to unpack .../6-libc6_2.33-7+rpi1_armhf.deb ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking libc6:armhf (2.33-7+rpi1) over (2.28-10+rpt2+rpi1) ...
Setting up libc6:armhf (2.33-7+rpi1) ...
/usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
dpkg: error processing package libc6:armhf (--configure):
 installed libc6:armhf package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
 libc6:armhf
E: Sub-process /usr/bin/dpkg returned an error code (1)

我看到它被标记了无法修复这对于严重破坏升级的东西来说很奇怪,据我所知,唯一的出路是全新安装。

错误报告中恢复的手动步骤不起作用,因为由于我没有以提升的权限运行,所以我无法复制到 /lib/...

答案1

读完后错误报告,我发现最干净的修复是:

sudo apt upgrade perl-base ; sudo apt upgrade

这将安装libcrypt1其中包含缺少的libcrypt.so.1;我刚刚在 Kali-Linux WSL2 上尝试过。

以上防止OP的情况。如果您已经处于 OP 的情况,请首先使用 Paladin 的修复来重新获得sudo访问权限:

取出 PI 的 SD 卡,将其放入读卡器中,将该读卡器连接到 Linux PC(任何 Linux live USB 记忆棒都可以),打开文件 /etc/shadow,搜索 root,更改 root:* :18970:0:99999:7::: 到 root::18970:0:99999:7::: (示例中第一个 * 已被删除),保存文件,将 SD 卡放回 PI,启动,以 root 身份登录(无需密码)并尝试使用超级用户解决您的问题。

相关内容