在执行“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 身份登录(无需密码)并尝试使用超级用户解决您的问题。