Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.4.7. RPM Package Manager(RPM)的更新

Red Hat Enterprise Linux 7 提供 RPM Package Manager 的更新版本。这个版本包括对可能会影响迁移行为的很多更改。

  • 现在,冲突检测更为严格且更为正确。因为存在冲突问题,在 Red Hat Enterprise Linux 6 中安装的一些软件包可能无法在 Red Hat Enterprise Linux 7 中安装。
  • 现在,可以使用 alternatives 将与其他版本本身冲突的软件包设置为单例,以便单个软件包的多个版本可以相互一起安装。
  • 如果安装的软件包列出另一个软件包已过时,则不会安装第二个软件包。
  • 过时的规则现在包括所有匹配的软件包,无论其他属性是什么,比如架构。
  • 依赖项计算不再考虑没有安装的文件或被替换的文件,如 --nodocs--noconfig--force 选项。
  • 重建一个崩溃(DB _RUNRECOVER )RPM Package Manager 数据库时,不再需要手动执行 rm -f /var/lib/rpm/_db.
  • 不再支持通过 OpenPGP 3 创建的公钥。
  • 现在,- info 选项会每行输出单独的标签值对,以提高人类可读性。任何依赖前 --info 格式的脚本都需要被重写。
  • 现在,spec 解析程序更为严格且更为准确,因此一些之前被接受的 spec 文件可能无法解析或会出现警告。
  • %license 现在可以用来将 spec 文件中的 %files 部分中的文件标记为许可证,即使指定了 --nodocs
  • 版本比较现在支持 dpkg 风格的波形符(~)运算符以更好地处理预发布软件。例如: foo-2.0~beta1 被视为比 foo-2.0 旧,删除 Release 项处理这些常见上游版本实践的需要。
  • 自动依赖项生成器已重写为可扩展、基于可定制规则的系统,并带有过滤中的内置功能。

这个版本还包括以下改进:

  • 现在,可以从软件包(INSTFILENAMES)中查询安装的文件、指向文件的硬链接的数量(FILENLINKS)、软件包版本控制系统详细信息(VCS)和已格式化的依赖关系字符串快捷键(PROVIDENEVRS )、REQUIRENEVRS、CONFLICTNEVRS、CONFLICTNEVRSOBSOVEVRS
  • 提供了很多新命令,其中包括:

    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM Package Manager 现在包含多个新的参数用于脚本,以启用运行时的宏扩展或者运行时查询格式扩展。
  • 现在,预处理和 post-transaction scriptlet 依赖项可以使用 Requires(pretrans)Requires(posttrans) 正确表达。
  • RPM Package Manager 现在包含 OrderWithRequires 标签,允许用户提供额外的排序信息。这个新标签的语法与 Requires 标签相同,但不会生成依赖项。如果同一事务中提到的软件包,则在计算事务顺序时,排序提示被视作 Requires
  • spec 文件中的行继续和宏扩展不再仅限于指定长度。
  • RPM Package Manager 现在允许用户指定上游版本控制存储库信息。
  • RPM Package Manager 现在包含一个 %autosetup 宏,以帮助自动化应用补丁的过程。