7.4. 使用 gem2rpm 生成 spec 文件


您可以使用 gem2rpm 工具创建 RPM spec 文件。

7.4.1. 为 Ruby gem 创建 RPM spec 文件

您可以使用 gem2rpm 工具为 RubyGems 软件包生成 RPM spec 文件。

先决条件

  • 您已在系统中安装了 gem2rpm 工具:

    $ gem install gem2rpm

流程

  1. 下载最新版本的 gem,并为这个 gem 生成 RPM spec 文件:

    $ gem2rpm --fetch <gem_name> > <gem_name>.spec
  2. 编辑生成的 spec 文件来添加缺失的信息,例如许可证和更改日志。

7.4.2. 使用自定义 gem2rpm 模板生成 spec 文件

gem2rpm 模板是可以从中生成 RPM spec 文件的标准的 嵌入式 Ruby (ERB) 文件。您可以编辑生成的 RPM spec 文件的模板,而不是编辑生成的 spec 文件。

先决条件

  • 您已在系统中安装了 gem2rpm 工具:

    $ gem install gem2rpm

流程

  1. 显示所有 gem2rpm 内置模板:

    $ gem2rpm --templates
  2. 选择其中一个内置模板,并将其保存为自定义模板:

    $ gem2rpm -t <template> -T > rubygem-<gem_name>.spec.template

    请注意,对于 RHEL 10 Beta,建议使用 fedora-27-rawhide 模板。

  3. 根据需要编辑模板。如需更多信息,请参阅 gem2rpm 模板变量
  4. 使用编辑的模板生成 spec 文件:

    $ gem2rpm -t rubygem-<gem_name>.spec.template <gem_name>-<latest_version>.gem > <gem_name>-GEM.spec

7.4.3. gem2rpm 模板变量

以下是 RPM spec 文件生成的 gem2rpm 模板中包含的变量。

Expand
表 7.3. gem2rpm 模板中的变量
变量解释

package

gem 的 Gem::Package 变量。

spec

gem 的 Gem::Specification 变量(与 format.spec相同)。

config

Gem2Rpm::Configuration 变量,可以重新定义 spec 模板助手中使用的默认宏或规则。

runtime_dependencies

Gem2Rpm::RpmDependencyList 变量,其提供软件包运行时依赖项的列表。

development_dependencies

Gem2Rpm::RpmDependencyList 变量,其提供软件包开发依赖项的列表。

测试

Gem2Rpm::TestSuite 变量,其提供允许其执行的测试框架的列表。

files

Gem2Rpm::RpmFileList 变量,其提供软件包中未过滤的文件的列表。

main_files

Gem2Rpm::RpmFileList 变量,其提供适合主软件包的文件的列表。

doc_files

Gem2Rpm::RpmFileList 变量,其提供适合 -doc 子软件包的文件的列表。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部