5.8. 如何使用 Perls 脚本处理 RPM 软件包
从 RHEL 8 开始,默认 buildroot 中不包含 Perl 编程语言。因此,包含 Perl 脚本的 RPM 软件包必须在 RPM spec
文件中使用 BuildRequires:
指令明确指明 Perl 的依赖项。
5.8.2. 使用特定的 Perl 模块
如果构建时需要特定的 Perl 模块,请使用以下步骤:
流程
在 RPM
spec
文件中应用以下语法:BuildRequires: perl(MODULE)
注意另外,将此语法应用到 Perl 核心模块,因为它们可能会随时间推移和移出
perl
软件包。
5.8.3. 将软件包限制为特定的 Perl 版本
要将软件包限制为特定的 Perl 版本,请按照以下步骤执行:
流程
将
perl (:VERSION)
依赖项与 RPMspec
文件中的所需的版本约束一起使用:例如,要将软件包限制为 Perl 版本 5.30 及更高版本,请使用:
BuildRequires: perl(:VERSION) >= 5.30
不要使用与 perl
软件包版本的比较,因为它会包括 epoch 号。
5.8.4. 确保软件包使用正确的 Perl 解释器
红帽提供了多个 Perl 解释器,它们不完全兼容。因此,任何提供 Perl 模块的软件包都必须在运行时使用在构建时所用的 Perl 解释器。
要确定这一点,请按照以下步骤执行:
流程
对于提供 Perl 模块的任何软件包,在 RPM
spec
文件中包括版本化的MODULE_COMPAT
Requires
:Requires: perl(:MODULE_COMPAT_%(eval `perl -V:version`; echo $version))