Menu Close

第 5 章 RHEL 9 中的新功能

这部分记录了 Red Hat Enterprise Linux 8 和 9 之间的 RPM 打包中最重要的变化。

5.1. 动态构建依赖项

Red Hat Enterprise Linux 9 引进了 %generate_buildrequires 部分,它可生成动态构建依赖项。

现在,可以使用新可用的 %generate_buildrequires 脚本,以编程方式生成额外的构建依赖项。这在使用特殊实用程序编写的语言打包软件时很有用,它用于确定运行时或构建运行时依赖项,如 Rust、Node.js、Ruby、Python 或 Haskell。

您可以使用 %generate_build requires 脚本来动态确定在构建时将哪些 BuildRequires 指令添加到 SPEC 文件中。如果存在,%generate_buildrequires%prep 部分后执行,并可以访问解压缩并修补的源文件。脚本必须使用与常规 BuildRequires 指令相同的语法将找到的构建依赖项打印到标准输出。

然后,rpmbuild 实用程序会在继续构建前检查是否满足依赖关系。

如果缺少一些依赖项,则会创建带有 .buildreqs.nosrc.rpm 后缀的软件包,其中包含找到的 BuildRequires,且没有源文件。在重启构建前,您可以使用此软件包在安装 dnf builddep 命令中缺少的构建依赖项。

有关更多信息,请参阅 rpmbuild(8) man page 中的 DYNAMIC BUILD DEPENDENCIES 部分。

其他资源

  • rpmbuild(8) 手册页
  • yum-builddep(1) man page