源 RPM 文档简单地捆绑了 spec 文档和构建软件包用到的任何源文档和补丁文档。假如您选择分发他,则其他人能够很容易地用他重建您的软件。二进制 RPM 文档仅包含已编译的软件和如何安装的信息。
RPM 做什么
下面总结了在您运行
rpm -ba filename.spec 时,RPM
都做些什么:
- 读取并解析 filename.spec 文档
- 运行
%prep部分来将源代码解包到一个临时目录,并应用任何的补丁程式。 - 运行
%build部分来编译代码。 - 运行
%install部分将代码安装到构建机器的目录中。 - 读取
%files部分的文档列表,收集文档并创建二进制和源 RPM 文档。 - 运行
%clean部分来除去临时构建目录。
spec 文档的内容
spec 文档有几个部分。第一部分是未标记的;其他部分以
%prep 和
%build 这样的行开始。
头
第一部分(未标记)定义了多种信息,其格式类似电子邮件消息头。
Summary 是一行关于该软件包的描述。
Name 是该软件包的基名,
Version
是该软件的版本号。
Release 是 RPM 本身的版本号 ―
假如修复了 spec 文档中的一个错误并发布了该软件同一版本的新
RPM,就应该增加发行版号。
License 应该给出一些许可术语(如:“GPL”、“Commercial”、“Shareware”)。
Group
标识软件类型;那些试图帮助人们管理 RPM 的程式通常按照组列出 RPM。您能够在
/usr/share/doc/rpm-4.0.2/GROUPS 文档看到一个 Red Hat 使用的组列表(假设您安装的 RPM 版本是
4.0.2)。但是您还能够使用那些组名以外的名称。
Source0 、
Source1 等等给这些源文档命名(通常为
tar.gz 文档)。
% 和
% 是
RPM 宏,他们扩展成为头中定义的 rpm
名称和版本。因此,在这个实例中,
Source0 被配置为
indent-2.2.6.tar.gz 。
不要在
Source
语句中包含任何路径。缺省情况下,RPM 会在 /usr/src/redhat/SOURCES
中寻找文档。请将您的源文档复制或链接到那里。(要使 spec
文档尽量可移植的话,应当尽量避免嵌入自己研发机器上的假想路径。其他研发人员就能够指示 RPM 在别的目录下查找源文档,而不用修改您的 spec
文档。)
描述
接下来的部分从
辳cription
行开始。您应该在这里提供该软件更多的描述,这样任何人使用
rpm
-qi
查询您的软件包时都能够看到他。您能够解释这个软件包做什么,描述任何警告或附加的配置指令,等等。
Shell 脚本
下面几部分是嵌入 spec 文档中的 shell 脚本。
%prep 负责对软件包解包。在最常见情况下,您只要用
%setup 宏即可,他会做适当的事情,在构建目录下解包源
tar 文档。加上
-q 项只是为了减少输出。
%build 应该编译软件包。该 shell
脚本从软件包的子目录下运行,在我们这个例子里是 indent-2.2.6
目录,因而这常常和运行
make 相同简单。
%install 在构建系统上安装软件包。这似乎和
make install
相同简单,但通常要复杂些。我将在下面解释这点。
文档列表
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




