zypper 单事务模式现已默认启用

2025年7月29日 | Thorsten Kukuk | 无许可

默认 zypper 后端

上周末,我们将 openSUSE MicroOS 中默认的 zypper 后端从 classic_rpmtrans 切换到 single_rpmtrans 后端。

如果有人关注了 factory 邮件列表或 openSUSE 的 bugzilla,在过去两年里可能已经注意到关于故障更新的定期讨论,主要是因为库更新太晚。结果是,%pre/%post 脚本中的工具无法正常工作,在最坏的情况下,导致系统无法启动。传统上,zypper 会为事务中的每个操作单独执行 rpm 命令。优点是,对于大型更新和小型根分区,zypper 可以逐个下载软件包,从而使更新成为可能。然而,缺点之一是,对于大量软件包,更新过程会慢得多。而且不仅如此,zypper 还需要保存 posttrans 脚本并在最后手动执行它们。这意味着更新过程与使用 RPM 一次性更新所有 RPM 的过程不同。因此,zypper 开发者实现了一个新的后端,该后端使用 librpm 以单个事务执行所有操作。然而,由于各种原因,这尚未成为标准,因此在使用硬件优化库时,仍然存在关于故障引导加载程序配置或更新 libopenssl 的错误报告。

这是如何实现的?

在命令行和 systemd 单元中,现在全局设置了环境变量 ZYPP_SINGLE_RPMTRANS=1,这应该涵盖 MicroOS 上的大多数情况。

如果仍然存在 zypper 使用旧 classic 后端的情况,请通过 bugzilla 报告。

这对用户意味着什么?

希望:什么也没有

或者更好:更新问题已经解决。如果您仍然看到软件包问题,请通过 bugzilla 报告,以便我们修复它们。

类别: 博客

标签

分享这篇文章