22.3.3. 其他显著变化
查看 RHEL 9 和 RHEL 10 之间 RPM 的以下显著变化。
- 在备用 root 操作中,用户和组群名称解析被严格本地
-
当在使用--root 选项指定的替代根目录中安装或验证软件包时,RPM 从目标根目录中的 passwd (5)和 group (5)文件中分别从
passwd (5)和group (5)文件中获取 UID (用户标识符)和 GID (组标识符)号。 - 文件所有权信息永远不会从构建系统上下文获得
-
在构建软件包时,
%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文件更易于读取和维护。如需更多信息,请参阅 自动补丁应用程序。-
通过使用