手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

用 RPM 打包软件,第 1 部分

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

源 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)。但是您还能够使用那些组名以外的名称。

Source0Source1 等等给这些源文档命名(通常为 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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!