经过一年的发展, 波芬 发射 软件包管理器的稳定版本 “ RPM 4.16”,其中 进行了一些改进 有关运营商,新后端和其他更改的信息。
RPM4项目 由Red Hat开发 并用于RHEL(包括从CentOS,Scientific Linux,AsiaLinux,Red Flag Linux,Oracle Linux衍生的产品),Fedora,SUSE,openSUSE,ALT Linux,OpenMandriva,Mageia,PCLinuxOS,Tizen等发行版中。
以前,一个独立的开发团队开发了RPM5项目,该项目与RPM4没有直接关系,目前已被放弃(自2010年以来未更新)。 项目代码根据GPLv2许可证进行分发
RPM 4.16的主要新功能
在这个新发布的RPM 4.16软件包管理器版本中,实现了一个新的后端以将数据库存储在SQLite DBMS中,并计划在Fedora 33版本中使用该后端,而不是基于BerkeleyDB的后端。
已实施的另一项更改是 用于数据库存储的新的实验性只读后端 在BDB(Oracle Berkeley DB)。 该实现是从头开始编写的,并且不使用BerkeleyDB旧版后端代码,该代码已不建议使用,但默认情况下仍包含在内。
在宏和表达式方面 添加了对%ten运算符的“%If”支持 (%{expr:1 == 0?»是»:»否»})并提供内置版本比较('%[v»3:1.2-1''> v»2.0'']')和新版本的比较添加了宏%arm32,%arm64和%riscv来定义体系结构,并且还与它们一起使用了内置宏%{macrobody:…}以获取宏内容。
除此之外 提出了新版本的解析和比较API 适用于C和Python语言。
提供了Brp-strip执行并行化 以及测试套件的组件。 已对包生成过程的并行化进行了优化。
还向rpmdb实用程序添加了“ –salvagedb”选项以还原损坏的数据库(仅适用于NDB后端)。
禁止在表达式中使用未用引号引起来的单词。 例如,现在您需要写'»a»==»b»,而不是'a == b'。
表达式解析器实现语法“%[...]”以执行带有宏扩展的表达式(与“%{expr:...}”的区别在于首先执行宏)。
已添加 支持逻辑运算符和tenaries的短扩展 在表达式中(“%[0 && 1/0]”被视为0,并且不会由于尝试除以零而导致错误)。
添加 支持在任意上下文中使用逻辑NOT运算符 (!“%?Foo”)。
“ ||”运算符的行为并且“ &&”是Perl / Python / Ruby对齐的,即现在不返回布尔值,而是返回最后一个计算值(例如,“%[2 || 3]”将返回2)。
, 其他突出的变化 RPM 4.16的新版本:
- 新增了验证数字签名和哈希的替代格式的功能。
- 添加了对元依赖性的支持(Requires(元):somepkg),这不影响安装和删除的顺序。
- 在rpmsign中添加了“ –rpmv3”选项,以强制执行RPM3数字签名。
- 添加了安装选项“ -excludeartifacts”,以跳过文档,样本配置文件和其他相关数据的安装。
- 对RPMv3以及beecrypt和NSS加密后端的过时支持。
- 添加了对DSA2(gcrypt)和EdDSA的支持。
- 基于LMDB的实验性后端数据库已删除。
- 基于NDB存储声明的稳定的后端数据库。
- 已经实现了根据文件的MIME内容类型对文件进行分类的支持。
- 添加了使用参数宏生成依赖项的功能。
最后 如果您想了解更多, 您可以检查完整的变更日志 在下面的链接中。
至于新版本的实施,您必须等待将其放置在发行版的官方渠道中,或者如果您是发烧友,则可以编译该软件包。 的链接 下载是这个。