
RPM 6.0 正式发布!这是从 4.x 系列以来,首次迎来「主版本号」升级,意义非凡。作为 Linux 世界历史最悠久、使用最广泛的包管理系统之一,RPM 一直是 RHEL、Fedora 和 openSUSE 等主流发行版的底层支柱。
这次大版本更新则是一次从格式、安全、构建到文档的全方位革新。下面我们就来一起看看,RPM 6.0 到底带来了哪些硬核升级。
RPM 6.0 主要更新亮点
全新 RPM v6 包格式
- 新版本最引人注目的是引入了全新的 RPM v6 包格式。它将所有大小限制提升至 64 位,彻底告别了 MD5 和 SHA-1 等过时的加密算法,并为包内容(payload)的校验新增了 SHA-512 和 SHA3-256 算法支持。
- 包头文件也获得了 SHA3-256 摘要支持,并且每个文件的 MIME 信息现在会直接嵌入到元数据中。
- 新格式的兼容性也相当出色:RPM 4.6 及以上版本可以查询 v6 格式包, 4.12 版本以上可以解包,而 4.14 及更新版本则可以进行校验和安装。
安全性加强
- RPM 现在默认强制执行签名校验,支持 OpenPGP v6 乃至后量子密码学(PQC)密钥,并允许对单个软件包进行多次签名。
- 为此,
rpmkeys
和rpmsign
等工具也进行了功能扩展,以支持这些变化。包括基于指纹的密钥管理、通过宏实现自动签名,以及在不破坏现有签名的前提下添加或替换新的签名。
打包方面增强
rpmbuild
现在可以同时生成 v4 和 v6 两种格式包,并默认使用 v6 格式。- 新增了 rpm-setup-autosign 实用工具,简化自动签名的配置过程。
- 此外,一些长期存在的构建脚本、依赖处理和宏处理方面的问题也得到了解决。
文档系统更新
- 所有 man 手册页都用统一的风格进行了重写,并对之前缺乏文档的组件增补了新页面。
- 推出了一个带版本控制的文档网站,用来集中托管参考手册、API 文档和更新后的示例代码。
底层实现变革
- RPM 现在使用 C++20 编译器构建,大量内部组件也已经迁移到现代化数据结构。项目会继续提供 Python 绑定,但要求 Python 3.10 或更高版本。
- 新版本特别强调了构建的「可复现性」,确保发布的源码包是纯净且可验证的。
- 尽管 RPM 6.0 默认采用全新的 v6 格式,但依然完整保留了对 v4 格式包的支持,确保了与现有生态系统的兼容性。
最后,值得一提的是,新版本移除了对 v3 格式包的安装支持,但用户仍然可以使用rpm2cpio
等工具来查询或解包这些旧格式的软件包。
最新评论
没看到 macos15 选项
十分感谢 一次成功
实在感谢,这下顺心多了。
非常感谢!