6.7.3.3. RubyGems spec 文件示例


用于构建 gems 的 spec 文件示例,以及其特定部分的说明。

RubyGems spec 文件示例

%prep
%setup -q -n  %{gem_name}-%{version}

# Modify the gemspec if necessary
# Also apply patches to code if necessary
%patch0 -p1

%build
# Create the gem as gem install only works on a gem file
gem build ../%{gem_name}-%{version}.gemspec

# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir
# by default, so that we can move it into the buildroot in %%install
%gem_install

%install
mkdir -p %{buildroot}%{gem_dir}
cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/

# If there were programs installed:
mkdir -p %{buildroot}%{_bindir}
cp -a ./%{_bindir}/* %{buildroot}%{_bindir}

# If there are C extensions, copy them to the extdir.
mkdir -p %{buildroot}%{gem_extdir_mri}
cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/

下表解释了 RubyGems spec 文件中特定项的具体信息:

Expand
表 6.5. RubyGems 的 spec 指令的具体信息
指令RubyGems 具体信息

%prep

RPM 可以直接解包 gem 归档,以便您可以运行 gem unpack 命令来从 gem 中提取源。%setup -n %{gem_name}-%{version} 宏提供 gem 已解压缩的目录。在同一目录级别,会自动创建 %{gem_name}-%{version}.gemspec 文件,该文件可用于重新构建 gem,以修改 .gemspec 或将补丁应用到代码。

%build

此指令包括将软件构建到机器代码的命令或一系列命令。%gem_install 宏只在 gem 归档上运行,而 gem 可使用下一个 gem 构建重新创建。然后,%gem_install 创建的 gem 文件会被用于构建代码并安装到临时目录中,默认为 ./%{gem_dir}%gem_install 宏构建并安装代码。在安装之前,构建的源会被放入自动创建的临时目录中。

%gem_install 宏接受两个附加选项: -n <gem_file>,它可以覆盖用于安装的 gem,-d <install_dir>,它可能会覆盖 gem 安装目的地;不建议使用这个选项。

%gem_install 宏不能用于安装到 %{buildroot} 中。

%install

安装将在 %{buildroot} 层次结构中执行。您可以创建需要的目录,然后将临时目录中安装的内容复制到 %{buildroot} 层次结构中。如果这个 gem 创建共享对象,则会移到特定于构架的 %{gem_extdir_mri} 路径中。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部