RPM Package Manager是一个包管理工具,旨在安装、更新、卸载、验证和请求程序
宣布推出新版本的包管理器“RPM 4.19”,重点强调了已做出的改进和修正,以及 APIS、支持、新的 CMake 编译系统等方面的进一步改进。
目前,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年以来未进行更新)。
一个 RPM 包可以包含任意数量的文件。大多数RPM 文件是“二进制 RPM”(或 BRPM),其中包含某些软件的编译版本。还有“源代码 RPM”(或 SRPM),其中包含用于构建二进制包的源代码。SRPM 文件通常具有“.src.rpm”文件扩展名(在文件系统扩展名限制为 3 个字符的情况下,例如较旧的 DOS FAT 文件系统,则为“.spm”)。
RPM 4.19的主要新功能
RPM 4.19 的新版本最显著的特点之一是增加了对“.specpart”文件的支持,用于动态生成规范文件,以及向 find_lang.sh添加了“ --generate-subpackages ”,该脚本使用 .specpart 文件。
RPM 4.19 新版本的另一个显著变化是集成了系统用户帐户目录 sysusers.d,用于自动处理用户和组。此外,还增加了从软件包中包含的/etc/passwd、/etc/group 和 sysusers.d 文件生成用户和组的功能。
在支持改进方面,以下几点尤为突出:增加了 x86-64 架构级别,修正了 rpmrc 中 x86 模型的派生方式, CMake 构建系统被替换为 Autotools,fakechroot 被容器技术替换。
我们还可以发现,规范文件中添加了对 %preuntrans 和 %postuntrans scriptlet 的支持,添加了 rpmsort 实用程序来对 rpm 包版本进行排序。
除此之外,还添加了“–nopreuntrans”、“–nopostuntrans”和“–nosysusers”选项,以在软件包安装过程中自动禁用脚本并创建用户和组。
新版本的其他显著变化包括:
- 使用户/组信息在 chroot 中可靠地工作
- 使 rpmscript 机器对 chroot 友好
- 修复了 4.18 中引入的每个文件插件挂钩回归
- 当 DBus 服务不可用时抑制禁止锁定警告消息
- 修复 macOS 中缺失的包含内容
- 与文件分类器rpmfcNew()相关的函数被声明为过时
- 修复了在 EINTR 情况下忽略子脚本的退出代码的问题
- rpmioe 线程启用代码已被简化和清理。
- %files 块和命令行实用程序现在支持 shell 样式的通配符和特殊字符转义。
- 删除其他一些旧的和冗余的配置时间检查
- 将翻译拆分为单独的项目
- 默认为 C.UTF-8 语言环境,允许回退到 C
- 库被导出为 cmake “find_package()” 配置
- API 中添加了 rpmGlobPath()、rpmEscape() 和 rpmUnescape() 函数。
- 现在完成汇编并行化时考虑了内存和地址空间。
- 创建文档中添加了开发文档。
- 各种其他添加和修复
- 对于使用 CMake 的项目,提供了 find_package(rpm) 函数。
- 修复了 Lua 宏调用的不可链接参数中的分段错误
最后,如果您有兴趣了解更多关于这个新版本的信息,可以在以下链接中找到详细信息。