软件工程师, IBM
2001 年 11 月
RPM 是广泛使用的用于交付 Linux 软件的工具,用户能够轻松的安装用 RPM 打包的产品。在本文中(系列文章的第 1 篇),IBM 软件工程师 Dan Poirier 向您演示如何在 Red Hat Linux 7.1 系统上用 RPM 打包简单软件。
RPM(Red Hat Package Manager)是用于 Linux 分发版(distribution)的最常见的软件包管理器。因为他允许分发已编译的软件,所以用户只用一个命令就能够安装软件。
RPM 是 Linux“标准基本库”版本 1.0.0 指定的安装工具。在 Linux 分发版前 10 名中,有 8 个是基于 RPM(请参阅“Comparison of Linux Distributions”,他位于本文后面的 参考资料中列出的 distrowatch.com 上)。即使某些通常不使用 RPM 的分发版,如 Debian,也有可用工具将 RPM 转换成他们自己的格式。在 Linux 上,对于除研发人员以外的任何人,RPM 也是用来打包软件的最好选择。
不论您是自己研发软件,还是通过提供代码以从中创建 RPM 软件包向开放源码项目提供帮助,本文都会帮助您入门。顺便要说的是,本系列的后续文章会涉及下列主题:构建 RPM 软件包而未必是 root 用户,在构建软件之前为其打补丁,安装和卸载时运行脚本连同在安装或卸载 其他软件包时运行脚本。
简单实例
我将从简单的实例开始,主要使用 RPM
缺省值。然后,我会添加上几个可选特性。
RPM 软件包从源文档形式的程式开始,作好了编译准备。我不想创建一个没有实际意义的示例,而是选择使用 GNU Indent 程式(请参阅 参考资料)。
在 Linux 下创建 Indent 很容易。 indent-2.2.6.tar.gz 文档位于当前目录之中,任何您要做的就是:
手工构建 indent |
假如您已构建过很多开放源码项目,那么这可能看起来很熟悉。
unpack;./configure;make;make
install 序列是典型的使用 GNU 自动配置(autoconf)工具的软件。因为这太普通了,所以我在这里描述的关于 indent 的大部分东西,几乎不加改变就能够用于其他开放源码项目。
现在假设您正在使用 Red Hat 7.1。在本文的后面,我将给出一些 在其他 Linux 分发版上使用 RPM 的建议。
在 Red Hat 7.1 上,
在继续以前,请确保您已安装了 rpm-build
软件包。为检查是否安装,请运行
rpm -q
rpm-build 。您应该看到一些类似于
rpm-build-4.0.2-8
的信息(版本可能会不同)。假如您看到的是
package rpm-build is
not installed ,则将需要从 Red Hat 安装 CD 上安装他。
制作基本 RPM 软件包
为了构建 RPM 软件包,您需要写一个名为
spec 文档的 RPM
输入文档,该文档告诉 RPM 如何构建和打包您的软件。编写 spec
文档您需要:
- 创建文档 indent-1.spec,如下所示。您能够任意地给他命名并把他放到任何地方;RPM 对这些没有需要。
- 以 root 用户登录。
- 将 indent-2.2.6.tar.gz 文档复制到 /usr/src/redhat/SOURCES。
- 运行
rpm -ba indent-1.spec,将 indent-1.spec 改为您使用的名字。
|
您应该看到 RPM 解包这个 tar 文档,编译并安装他。 在 Red Hat 7.1 上,工作目录将是 /usr/src/redhat/BUILD。
最后,RPM 将创建两个 RPM 文档。将在 /usr/src/redhat/SRPMS/indent-2.2.6-1.src.rpm 中创建一个源 RPM 文档,而在 /usr/src/redhat/RPMS/i386/indent-2.2.6-1.i386.rpm 中创建一个二进制 RPM 文档。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




