第 16章 . 使用 RPM 来管理软件包

RPM 软件包管理器(RPM)是一种开放打包系统,任何人都可以使用。它在红帽企业 Linux,以及其它 Linux 和 UNIX 系统上运行。Red Hat, Inc. 鼓励其它销售商在他们自己的产品上使用 RPM 技术。RPM 按照 GPL 条款被发行。

对于终端用户来说,RPM 简化了系统更新。安装、卸装、升级 RPM 软件包可以使用简短的命令就可完成。RPM 维护一个已安装软件包和它们的文件的数据库,因此,你可以在系统上使用功能强大的查询和校验。如果你更喜欢图形化界面,你可以使用软件包管理工具来执行许多 RPM 命令。详情请参阅第17章

在升级中,RPM 处理配置文件时非常谨慎,因此你决不会丢失你定制的配置 — 这是普通的 .tar.gz 文件所无法达到的。

对于开发者来说,RPM 允许你把软件编码包装成源码包和程序包,然后提供给终端用户。这个进程非常简单,它能从你创建的单个文件或补丁中驱动。这种对你的“纯净”(pristine)源码、补丁和建构指令的清晰描述减轻了发行软件新版本所带来的维护负担。

注记注记
 

因为 RPM 要对你的系统做适当改变,你必须是根用户才能安装、删除、或升级某个 RPM 软件包。

16.1. RPM 的设计目标

为了理解 RPM 的使用方法,我们应该先来了解 RPM 的设计目标:

可升级性

使用 RPM,你可以不必全盘重装就可以在系统上升级个别组件。当你得到一个基于 RPM 的操作系统的新发行版本(如红帽企业 Linux)后,你不必重新安装系统(基于其它打包系统的操作系统需要重装)。RPM 让你能够智能化、自动化地就地升级你的系统。软件包中的配置文件在升级中被保留,因此你不会丢失定制的设置。你不需要特殊的升级文件来升级某软件包,因为在系统上安装和升级软件包所使用的是同一个 RPM 文件。

强大的查询功能

RPM 的设计提供了强大的查询功能。你可以在整个数据库中搜索软件包或某些特定文件。你还可以轻易地了解到哪个文件属于哪个软件包,软件包来自哪里。RPM 软件包的文件包括在被压缩的归档中,其中有定制的二进制档头,该档头内包含关于软件包及其内容的信息,允许你快速简捷地查询个体软件包。

系统校验

另一项强大的功能是软件包校验。如果你担心你可能删除了某软件包上的一个重要文件,只需校验该软件包即可。任何异常情况都会通知给你。到时,若有必要,你可以重装该软件包。修改过的配置文件在重装中会被保留。

纯净源码

RPM 的一个重要设计目标是允许使用与软件的原创者所发行源码一致的“纯净”软件源码。使用 RPM,你会有纯净源码、使用过的补丁、以及完整的建构指令。这是一个重要的优越性。首先,如果程序的新版本被推出,你不必从头开始编译。你可以看一看补丁来判定你可能需要做什么。使用这种技术,所有内编译的默认值,以及为正确建构软件而进行的任何改变都一目了然。

保持源码纯净的目的似乎只对开发者来说是重要的,但是它也会给终端用户带来高质量的软件。我们想在此向 BOGUS 的发行人员致谢,感谢他们最先开创了纯净源码这一概念。