当前位置:Linux教程 - Linux资讯 - RedHat Linux 9软件包管理

RedHat Linux 9软件包管理

Red Hat Linux 系统上的所有软件都被分成可被安装、升级、或删除的 RPM 软件包。这个部分描述了如何使用图形化和命令行工具来管理 Red Hat Linux 系统上的 RPM 软件包。

32. 使用 RPM 来管理软件包

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

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

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

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

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

32.1. RPM 的设计目标

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

可升级性

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

强大的查询功能

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

系统校验

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

纯净源码

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

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

32.2. 使用 RPM

RPM 有五种基本操作模式(不包括软件包建构):安装、删除安装、升级、查询和校验。本章节包括对每一模式的总览。想了解完整的选项和细节,请使用 rpm --help 命令,或阅读 第 32.5 节 中关于 RPM 的信息。

32.2.1. 寻找 RPM 软件包

在使用 RPM 之前,你必须知道要到哪里去寻找它们。在互联网上搜索会返回许多 RPM 仓库,但是如果你要找的是由 Red Hat 建构的 RPM 软件包,你可以在下面几个地方找到它们:


[1] [2] [3] 下一页 

Red Hat Linux 光盘

Red Hat 勘误网页: http://www.redhat.com/apps/support/errata/

Red Hat FTP 镜像网站: http://www.redhat.com/download/mirror.Html

Red Hat 网络 — 关于 Red Hat 网络的详情,请参阅第34章。

32.2.2.安装

典型的 RPM 软件包名称类似于 foo-1.0-1.i386.rpm 。该文件名包括软件包名称( foo )、版本( 1.0 )、发行版本( 1 )、以及体系( i386 )。安装软件包简单之极,登录为根用户,然后在 shell 提示下键入下面的命令:

rpm -Uvh foo-1.0-1.i386.rpm

如果安装成功,你会看到如下所示的输出:

Preparing... ########################################### [100%] 1:foo ########################################### [100%]

如上面所示,RPM 显示软件包的名称,然后在软件包被安装时在屏幕上打印井号来显示安装进度。

从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。如果签名校验失败,你就会看到如下所示的错误消息:

error: V3 DSA signature: BAD, key ID 0352860f

如果它是新的、只针对文件头的签名,你会看到如下所示的错误消息:

error: Header V3 DSA signature: BAD, key ID 0352860f

如果你没有安装合适的钥匙来校验签名,消息中就会包含 NOKEY ,如:

warning: V3 DSA signature: NOKEY, key ID 0352860f

关于校验软件包签名的详细信息,请参阅第 32.3 节。

注记:如果你要安装内核软件包,你应该使用 rpm -ivh 。详情请参阅第30章。

虽然安装软件包旨在简单易行,但是你有时也会看到错误。

32.2.2.1.软件包已安装

如果某软件包的同一版本已经安装,你就会看到:

Preparing... ########################################### [100%] package foo-1.0-1 is already installed

如果你在软件包已安装的情况下仍打算安装同一版本的软件包,你可以使用 --replacepkgs 选项,它告诉 RPM 来忽略这个错误:

rpm -ivh --replacepkgs foo-1.0-1.i386.rpm


上一页 [1] [2] [3] 下一页 

如果从 RPM 安装的文件被删除了,或者你想安装 RPM 中的最初配置文件,该选项就会很有用。

32.2.2.2.文件冲突

如果你试图安装的软件包中包含已被另一个软件包或同一软件包的早期版本安装了的文件,你会看到:

Preparing... ########################################### [100%] file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20

要使 RPM 忽略这个错误,使用 --replacefiles 选项:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm 32.2.2.3.未解决的依赖关系

RPM 软件包可能“依赖”于其它软件包,这意味着它们需要安装其它软件包才能正确运行。如果你试图安装具有未解决依赖关系的软件包,你会看到:

Preparing... ##################################

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

要使 RPM 忽略这个错误,使用 --replacefiles 选项:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm 32.2.2.3.未解决的依赖关系

RPM 软件包可能“依赖”于其它软件包,这意味着它们需要安装其它软件包才能正确运行。如果你试图安装具有未解决依赖关系的软件包,你会看到:

Preparing... ##################################

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4]