加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何编写RPM的spec文件

发布时间:2019-11-05 21:29:59 所属栏目:Windows 来源:Ankur Sinha "franciscod"
导读:在关于 RPM 软件包构建的上一篇文章中,你了解到了源 RPM 包括软件的源代码以及 spec 文件。这篇文章深入研究了 spec 文件,该文件中包含了有关如何构建 RPM 的指令。同样,本文以 fpaste 为例。 了解源代码 在开始编写 spec 文件之前,你需要对要打包的软
副标题[/!--empirenews.page--]

如何编写RPM的spec文件

在关于 RPM 软件包构建的上一篇文章中,你了解到了源 RPM 包括软件的源代码以及 spec 文件。这篇文章深入研究了 spec 文件,该文件中包含了有关如何构建 RPM 的指令。同样,本文以 fpaste 为例。

了解源代码

在开始编写 spec 文件之前,你需要对要打包的软件有所了解。在这里,你正在研究 fpaste,这是一个非常简单的软件。它是用 Python 编写的,并且是一个单文件脚本。当它发布新版本时,可在 Pagure 上找到:https://pagure.io/releases/fpaste/fpaste-0.3.9.2.tar.gz。

如该档案文件所示,当前版本为 0.3.9.2。下载它,以便你查看该档案文件中的内容:

  1. $ wget https://pagure.io/releases/fpaste/fpaste-0.3.9.2.tar.gz
  2. $ tar -tvf fpaste-0.3.9.2.tar.gz
  3. drwxrwxr-x root/root 0 2018-07-25 02:58 fpaste-0.3.9.2/
  4. -rw-rw-r-- root/root 25 2018-07-25 02:58 fpaste-0.3.9.2/.gitignore
  5. -rw-rw-r-- root/root 3672 2018-07-25 02:58 fpaste-0.3.9.2/CHANGELOG
  6. -rw-rw-r-- root/root 35147 2018-07-25 02:58 fpaste-0.3.9.2/COPYING
  7. -rw-rw-r-- root/root 444 2018-07-25 02:58 fpaste-0.3.9.2/Makefile
  8. -rw-rw-r-- root/root 1656 2018-07-25 02:58 fpaste-0.3.9.2/README.rst
  9. -rw-rw-r-- root/root 658 2018-07-25 02:58 fpaste-0.3.9.2/TODO
  10. drwxrwxr-x root/root 0 2018-07-25 02:58 fpaste-0.3.9.2/docs/
  11. drwxrwxr-x root/root 0 2018-07-25 02:58 fpaste-0.3.9.2/docs/man/
  12. drwxrwxr-x root/root 0 2018-07-25 02:58 fpaste-0.3.9.2/docs/man/en/
  13. -rw-rw-r-- root/root 3867 2018-07-25 02:58 fpaste-0.3.9.2/docs/man/en/fpaste.1
  14. -rwxrwxr-x root/root 24884 2018-07-25 02:58 fpaste-0.3.9.2/fpaste
  15. lrwxrwxrwx root/root 0 2018-07-25 02:58 fpaste-0.3.9.2/fpaste.py -> fpaste

你要安装的文件是:

  • fpaste.py:应该安装到 /usr/bin/
  • docs/man/en/fpaste.1:手册,应放到 /usr/share/man/man1/
  • COPYING:许可证文本,应放到 /usr/share/license/fpaste/
  • README.rstTODO:放到 /usr/share/doc/fpaste/ 下的其它文档。

这些文件的安装位置取决于文件系统层次结构标准(FHS)。要了解更多信息,可以在这里阅读:http://www.pathname.com/fhs/ 或查看 Fedora 系统的手册页:

  1. $ man hier

第一部分:要构建什么?

现在我们知道了源文件中有哪些文件,以及它们要存放的位置,让我们看一下 spec 文件。你可以在此处查看这个完整的文件:https://src.fedoraproject.org/rpms/fpaste/blob/master/f/fpaste.spec。

这是 spec 文件的第一部分:

  1. Name: fpaste
  2. Version: 0.3.9.2
  3. Release: 3%{?dist}
  4. Summary: A simple tool for pasting info onto sticky notes instances
  5. BuildArch: noarch
  6. License: GPLv3+
  7. URL: https://pagure.io/fpaste
  8. Source0: https://pagure.io/releases/fpaste/fpaste-0.3.9.2.tar.gz
  9.  
  10. Requires: python3
  11.  
  12. %description
  13. It is often useful to be able to easily paste text to the Fedora
  14. Pastebin at http://paste.fedoraproject.org and this simple script
  15. will do that and return the resulting URL so that people may
  16. examine the output. This can hopefully help folks who are for
  17. some reason stuck without X, working remotely, or any other
  18. reason they may be unable to paste something into the pastebin

NameVersion 等称为标签,它们定义在 RPM 中。这意味着你不能只是随意写点标签,RPM 无法理解它们!需要注意的标签是:

  • Source0:告诉 RPM 该软件的源代码档案文件所在的位置。
  • Requires:列出软件的运行时依赖项。RPM 可以自动检测很多依赖项,但是在某些情况下,必须手动指明它们。运行时依赖项是系统上必须具有的功能(通常是软件包),才能使该软件包起作用。这是 dnf 在安装此软件包时检测是否需要拉取其他软件包的方式。
  • BuildRequires:列出了此软件的构建时依赖项。这些通常必须手动确定并添加到 spec 文件中。
  • BuildArch:此软件为该计算机体系结构所构建。如果省略此标签,则将为所有受支持的体系结构构建该软件。值 noarch 表示该软件与体系结构无关(例如 fpaste,它完全是用 Python 编写的)。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读