spec 文件的每项变更都必须有一个变更日志条目。如你在此处看到的,虽然我以维护者身份更新了该 spec 文件,但其他人也做过更改。清楚地记录变更内容有助于所有人知道该 spec 文件的当前状态。对于系统上安装的所有软件包,都可以使用 rpm 来查看其更改日志:
$ rpm -q --changelog fpaste
构建 RPM
现在我们准备构建 RPM 包。如果要继续执行以下命令,请确保遵循上一篇文章中的步骤设置系统以构建 RPM。
我们将 fpaste 的 spec 文件放置在 ~/rpmbuild/SPECS 中,将源代码档案文件存储在 ~/rpmbuild/SOURCES/ 中,现在可以创建源 RPM 了:
$ cd ~/rpmbuild/SPECS $ wget https://src.fedoraproject.org/rpms/fpaste/raw/master/f/fpaste.spec -
$ cd ~/rpmbuild/SOURCES $ wget https://pagure.io/fpaste/archive/0.3.9.2/fpaste-0.3.9.2.tar.gz -
$ cd ~/rpmbuild/SOURCES $ rpmbuild -bs fpaste.spec Wrote: /home/asinha/rpmbuild/SRPMS/fpaste-0.3.9.2-3.fc30.src.rpm
让我们看一下结果:
$ ls ~/rpmbuild/SRPMS/fpaste* /home/asinha/rpmbuild/SRPMS/fpaste-0.3.9.2-3.fc30.src.rpm -
$ rpm -qpl ~/rpmbuild/SRPMS/fpaste-0.3.9.2-3.fc30.src.rpm fpaste-0.3.9.2.tar.gz fpaste.spec
我们看到源 RPM 已构建。让我们同时构建源 RPM 和二进制 RPM:
$ cd ~/rpmbuild/SPECS $ rpmbuild -ba fpaste.spec .. .. ..
RPM 将向你显示完整的构建输出,并在我们之前看到的每个部分中详细说明它的工作。此“构建日志”非常重要。当构建未按预期进行时,我们的打包人员将花费大量时间来遍历它们,以跟踪完整的构建路径来查看出了什么问题。
就是这样!准备安装的 RPM 应该位于以下位置:
$ ls ~/rpmbuild/RPMS/noarch/ fpaste-0.3.9.2-3.fc30.noarch.rpm
概括
我们已经介绍了如何从 spec 文件构建 RPM 的基础知识。这绝不是一份详尽的文档。实际上,它根本不是文档。它只是试图解释幕后的运作方式。简短回顾一下:
- RPM 有两种类型:源 RPM 和 二进制 RPM。
- 二进制 RPM 包含要安装以使用该软件的文件。
- 源 RPM 包含构建二进制 RPM 所需的信息:完整的源代码,以及 spec 文件中的有关如何构建 RPM 的说明。
- spec 文件包含多个部分,每个部分都有其自己的用途。 在这里,我们已经在安装好的 Fedora 系统中本地构建了 RPM。虽然这是个基本的过程,但我们从存储库中获得的 RPM 是建立在具有严格配置和方法的专用服务器上的,以确保正确性和安全性。这个 Fedora 打包流程将在以后的文章中讨论。
你想开始构建软件包,并帮助 Fedora 社区维护我们提供的大量软件吗?你可以从这里开始加入软件包集合维护者。
如有任何疑问,请发布到 Fedora 开发人员邮件列表,我们随时乐意为你提供帮助!
参考
这里有一些构建 RPM 的有用参考:
- https://fedoraproject.org/wiki/How_to_create_an_RPM_package
- https://docs.fedoraproject.org/en-US/quick-docs/create-hello-world-rpm/
- https://docs.fedoraproject.org/en-US/packaging-guidelines/
- https://rpm.org/documentation.html
【编辑推荐】
- QQ for Linux 复活,微信 for Linux 还会远吗?
- 使用GNOME优化工具自定义Linux桌面的10种方法
- Linux 下软链接和硬链接的区别
- 5个Linux桌面上的密码管理器
- 微软官宣:基于Chromium的Edge即将登陆GNU/Linux平台
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0
(编辑:ASP站长网)
|