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 版本,请按照以下步骤执行:

流程

  • 在 RPM spec 文件中,将 perl (:VERSION) 依赖项与所需版本约束一起使用:

    例如,要将软件包限制为 Perl 版本 5.22 及更新的版本,请使用:

    BuildRequires: perl(:VERSION) >= 5.22
警告

不要使用与 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))
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.