2024年01月04日

glibc 2.38 更新问题及解决方案

随着 glibc 2.38 的更新,libcrypt.so.1 不再由 glibc 提供。 Libcrypt 是几个使用加密功能的核心系统包(包括 pam)的重要库。该库的版本已发生变化,旧版本仍可用于预编译或专有应用程序。新版本在 Void 中作为 libxcrypt 提供,旧版本为 libxcrypt-compat

通过此更改,某些类型的部分更新可能会导致 PAM 无法运行。这会破坏 sudodoassu 等工具,以及系统身份验证。症状包括提示“PAM authentication error: Module is unknown”。如果这种情况发生在您身上,您可以:

  • 在引导加载程序中将 init=/bin/sh 添加到内核命令行并 降级 glibc,
  • 或者在 Live 环境中挂载系统的根分区,chroot 进入其中,并安装 libxcrypt-compat

以上任一步骤都应能让您正常访问系统并运行完整更新。

为确保上述灾难性的部分更新不会发生,glibc-2.38_3 现在依赖于 libxcrypt-compat。通过此更改,执行包含 glibc 2.38 的部分更新是安全的。