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、CONFLICTNEVRS
、OBSOVEVRS
。 提供了很多新命令,其中包括:
-
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
宏,以帮助自动化应用补丁的过程。