3.3. 构建 RPM
这部分论述了如何在为程序创建 SPEC 文件后构建 RPM。
				RPM 使用 rpmbuild 命令构建。此命令需要特定的目录和文件结构,这与 rpmdev-setuptree 程序设置的结构相同。
			
				不同的用例和所需结果需要不同的参数组合到 rpmbuild 命令。本节描述了两个主要用例:
			
- 构建源 RPM
- 构建二进制 RPM
3.3.1. 构建源 RPM
这一段是过程模块简介:对流程的简短描述。
先决条件
我们要打包的程序的 SPEC 文件必须已经存在。有关创建 SPEC 文件的更多信息,请参阅使用 SPEC 文件。
流程
以下流程描述了如何构建源 RPM。
- 使用指定的 SPEC 文件运行 - rpmbuild命令:- rpmbuild -bs SPECFILE - $ rpmbuild -bs SPECFILE- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用 SPECfile 替换 SPECFILE。 - -bs选项代表构建源。
					以下示例显示了为 bello、pello 和 cello 项目构建源 RPM。
				
为 bello、pello 和 cello 构建源 RPM.
验证步骤
- 
							确保 rpmbuild/SRPMS目录包含生成的源 RPM。该目录是rpmbuild所期望的结构的一部分。
3.3.2. 构建二进制 RPM
以下方法可用于构建二进制 RPM:
- 从源 RPM 重建二进制 RPM
- 从 SPEC 文件构建二进制 RPM
- 从源 RPM 构建二进制 RPM
3.3.2.1. 从源 RPM 重建二进制 RPM
以下流程演示了如何从源 RPM(SRPM)重建二进制 RPM。
步骤
- 要从 SRPMs 中重建 - bello、- pello和- cello,请运行:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
							调用 rpmbuild --rebuild 涉及:
						
- 
									在 ~/rpmbuild/目录中安装 SRPM - SPEC 文件和源代码 -。
- 使用安装的内容进行构建.
- 删除 SPEC 文件和源代码。
要在构建后保留 SPEC 文件和源代码,您可以:
- 
									构建时,使用带有 --recompile选项而非--rebuild选项的rpmbuild命令。
- 使用以下命令安装 SRPMs: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
创建二进制 RPM 时生成的输出是详细的,这对调试非常有用。输出因不同示例而异,并对应于其 SPEC 文件。
						如果软件包没有特定架构,生成的二进制 RPM 位于 ~/rpmbuild/RPMS/YOURARCH 目录中(其中 YOURARCH 是您的架构),或位于 ~/rpmbuild/RPMS/noarch/ 目录中。
					
3.3.2.2. 从 SPEC 文件构建二进制 RPM
						以下步骤演示了如何从 SPEC 文件构建 bello、pello 和 cello 二进制 RPM。
					
步骤
- 使用 - bb选项运行- rpmbuild命令:- rpmbuild -bb ~/rpmbuild/SPECS/bello.spec rpmbuild -bb ~/rpmbuild/SPECS/pello.spec rpmbuild -bb ~/rpmbuild/SPECS/cello.spec - $ rpmbuild -bb ~/rpmbuild/SPECS/bello.spec $ rpmbuild -bb ~/rpmbuild/SPECS/pello.spec $ rpmbuild -bb ~/rpmbuild/SPECS/cello.spec- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
3.3.2.3. 从源 RPM 构建 RPM
也可以从源 RPM 构建任何类型的 RPM。要做到这一点,请使用以下步骤。
步骤
- 使用以下选项之一运行 - rpmbuild命令,并使用指定的源软件包:- rpmbuild {-ra|-rb|-rp|-rc|-ri|-rl|-rs} [rpmbuild-options] SOURCEPACKAGE- # rpmbuild {-ra|-rb|-rp|-rc|-ri|-rl|-rs} [rpmbuild-options] SOURCEPACKAGE- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
其他资源
							有关从源 RPM 构建 RPM 的详情,请查看 rpmbuild (8) 手册页中的 BUILDING PACKAGES 部分。