4.6. 构建 RPM
您可以使用 rpmbuild 命令构建 RPM 软件包。使用此命令时,应该有一个特定的目录和文件结构,它与 rpmdev-setuptree 程序设置的结构相同。
不同的用例和所需结果需要不同的参数组合到 rpmbuild 命令。以下是主要用例:
- 构建源 RPM.
构建二进制 RPM:
- 从源 RPM 重建二进制 RPM。
-
从
spec文件构建二进制 RPM。
4.6.1. 构建源 RPM 复制链接链接已复制到粘贴板!
构建源 RPM (SRPM)具有以下优点:
-
您可以保留部署到环境中的 RPM 文件的特定
Name-Version-Release的确切源。这包括确切的spec文件、源代码以及所有相关补丁。这可用于跟踪和调试目的。 - 您可以在不同的硬件平台或构架中构建二进制 RPM。
先决条件
您已在系统中安装了
rpmbuild工具:# yum install rpm-build以下
Hello World!实现放置在~/rpmbuild/SOURCES/目录中:-
您要软件包的程序的
spec文件已存在。
流程
导航到
~/rpmbuild/SPECS/指令,其中包含创建的spec文件:$ cd ~/rpmbuild/SPECS/使用指定
spec文件输入rpmbuild命令构建源 RPM:$ rpmbuild -bs <specfile>-bs选项代表 构建源。例如,要为
bello、pello和cello程序构建源 RPM,请输入:$ rpmbuild -bs bello.spec Wrote: /home/admiller/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm $ rpmbuild -bs python-pello.spec Wrote: /home/admiller/rpmbuild/SRPMS/python-pello-1.0.2-1.el8.src.rpm $ rpmbuild -bs cello.spec Wrote: /home/admiller/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm
验证
-
验证
rpmbuild/SRPMS目录是否包含生成的源 RPM。该目录是rpmbuild所期望的结构的一部分。
4.6.2. 从源 RPM 重建二进制 RPM 复制链接链接已复制到粘贴板!
要从源 RPM (SRPM)重建二进制 RPM,请使用 rpmbuild 命令和 --rebuild 选项。
创建二进制 RPM 时生成的输出非常详细,这对于调试非常有用。输出因不同的示例而异,并对应于其 spec 文件。
生成的二进制 RPM 位于 ~/rpmbuild/RPMS/YOURARCH 目录中,其中 YOURARCH 是您的架构,或者在 ~/rpmbuild/RPMS/noarch/ 目录中(如果该软件包不特定于架构)。
先决条件
您已在系统中安装了
rpmbuild工具:# yum install rpm-build
流程
进入
~/rpmbuild/SRPMS/指令,其中包含源 RPM:$ cd ~/rpmbuild/SRPMS/从源 RPM 重建二进制 RPM:
$ rpmbuild --rebuild <srpm>例如,要从 SRPMs 重建
bello、pello和cello,请输入:$ rpmbuild --rebuild bello-0.1-1.el8.src.rpm [output truncated] $ rpmbuild --rebuild python-pello-1.0.2-1.el8.src.rpm [output truncated] $ rpmbuild --rebuild cello-1.0-1.el8.src.rpm [output truncated]
调用 rpmbuild --rebuild 涉及以下进程:
-
将 SRPM (
spec文件和源代码)的内容安装到~/rpmbuild/目录中。 - 使用安装的内容构建一个 RPM。
-
删除
spec文件和源代码。
您可以在构建以下任一方法后保留 spec 文件和源代码:
-
在构建 RPM 时,请使用
rpmbuild命令和--recompile选项,而不是--rebuild选项。 为
bello、python-pello和cello安装 SRPMs:$ rpm -Uvh ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm Updating / installing… 1:bello-0.1-1.el8 [100%] $ rpm -Uvh ~/rpmbuild/SRPMS/python-pello-1.0.2-1.el8.src.rpm Updating / installing… …1:python-pello-1.0.2-1.el8 [100%] $ rpm -Uvh ~/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm Updating / installing… …1:cello-1.0-1.el8 [100%]
4.6.3. 从 spec 文件构建二进制 RPM 复制链接链接已复制到粘贴板!
要从其 spec 文件构建二进制 RPM,请使用 rpmbuild 命令和 -bb 选项。-bb 选项代表 构建二进制文件。
先决条件
您已在系统中安装了
rpmbuild工具:# yum install rpm-build
流程
导航到
~/rpmbuild/SPECS/指令,其中包含spec文件:$ cd ~/rpmbuild/SPECS/从其
规格构建二进制 RPM:$ rpmbuild -bb <spec_file>例如,要从其
spec文件构建bello、pello和cello二进制 RPM,请输入:$ rpmbuild -bb bello.spec $ rpmbuild -bb python-pello.spec $ rpmbuild -bb cello.spec