5.5.2. 从源 RPM 重新构建一个二进制 RPM
要从源 RPM (SRPM)重建二进制 RPM,请使用 rpmbuild 命令和 --rebuild 选项。
创建二进制 RPM 时产生的输出非常详细,这对调试非常有用。输出因不同的示例而异,并对应于其 spec 文件。
生成的二进制 RPM 位于 ~/rpmbuild/RPMS/YOURARCH 目录中,其中 YOURARCH 是您的架构,或者如果软件包不是特定于架构的,则位于 ~/rpmbuild/RPMS/noarch/ 目录中。
先决条件
您已在系统上安装了
rpmbuild工具:# dnf install rpm-build
流程
导航到
~/rpmbuild/SRPMS/指令,其包含源 RPM:$ cd ~/rpmbuild/SRPMS/从源 RPM 重新构建二进制 RPM:
$ rpmbuild --rebuild <srpm>例如,要从其 SRPM 中重新构建
bello、pello和cello,请输入:+
$ **rpmbuild --rebuild bello-0.1-1.el9.src.rpm**
[output truncated]
$ **rpmbuild --rebuild python-pello-1.0.2-1.el9.src.rpm**
[output truncated]
$ **rpmbuild --rebuild cello-1.0-1.el9.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.el9.src.rpm**
Updating / installing...
1:bello-0.1-1.el9 [100%]
$ **rpm -Uvh ~/rpmbuild/SRPMS/python-pello-1.0.2-1.el9.src.rpm**
Updating / installing...
...1:python-pello-1.0.2-1.el9 [100%]
$ **rpm -Uvh ~/rpmbuild/SRPMS/cello-1.0-1.el9.src.rpm**
Updating / installing...
...1:cello-1.0-1.el9 [100%]