19.3.3. 其他显著变化


用户和组群名称解析现在严格限于本地

安装软件包时,RPM 现在可以从本地系统上的 passwd (5)group (5) 文件分别获取有关用户和组的信息,而不是使用名称服务切换(NSS)。

在构建软件包时,%defattr 指令现在以 root 身份解释用户和组属性的短划线(-)占位符,而不是从磁盘获取实际所有权的信息。同样,源 RPM 软件包中的文件(如 spec 文件、源存档或补丁文件)现在一直归 root 用户和组所有,无论它们在磁盘上所有权如何。

现在,构建树(%_builddir)会在成功构建后默认被删除

在以前的版本中,rpmbuild (8) 仅在 --rebuild 模式下,而不是在更常用的模式(如 -bb)下清理构建目录。因此,构建多个软件包会随着时间的推移导致不必要的文件累积。有了此增强,如果您希望始终保留构建树,例如,要调查非致命的构建问题,您可以使用 --noclean 选项。

%patch 指令现在必须明确指定要应用的补丁号

您可以通过以下方式之一指定补丁号:

  • 通过使用 -P 选项,例如 %patch -P1 -P2 来应用补丁号 1 和 2。
  • 通过将补丁号作为位置参数传递,例如 %patch 1 2 来应用补丁号 1 和 2。
重要

%patchN 语法(其中 N 是要应用的补丁号)现已弃用。

注意

如果没有使用 %patch 指令明确指定补丁号,则构建会终止并显示错误。

注意

建议您尽可能使用 %autosetup 宏,而不是使用 %patch 指令手动应用单个补丁。当您使用 %autosetup 时,补丁会按照其补丁号标识的顺序自动应用。因此,spec 文件更易于读取和维护。如需更多信息,请参阅 自动补丁应用程序

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部