2. 软件管理概念

2.1. 关于软件包

Fedora 的软件和文档以一种称为 RPM 软件包 的文件方式提供。每个软件包是一个压缩的文档,包含了内容信息,应用程序文件,图标,文档和用作管理的脚本。管理程序利用这些内容来安全地定位、安装和卸载软件。例如,Fedora 安装过程使用随 Fedora Core 附带的软件包来构建或升级符合您需要的系统。

软件包也包含一个数字签名,以验证它们的来源。软件管理工具通过 GPG 公钥 来验证这个签名。yumrpm 工具共享同一个 keyring,它保存了所有有保障的软件包来源的公钥。系统管理员可以选择添加这些有保障的软件包来源。

[注意]Fedora 的所有软件包都是开源软件

Fedora Project 提供的所有软件都是开源软件。您可以下载 Fedora 的软件包并安装到任意多的系统中。

2.2. 关于仓库

仓库 是一个预备好的目录,或是一个网站,包含了软件包和索引文件。软件管理工具,类似 yum,可以在仓库中自动地定位并获取正确的 RPM 软件包。这样,您就不必手动搜索和安装新应用程序和升级补丁了。只用一个命令,您就可以更新系统中所有软件,也可以根据指定搜索目标来查找安装新软件。

有一系列的服务器,为每个版本的 Fedora 分别提供了一些仓库。Fedora Core 中的软件管理工具已经预先配置为使用下列三个仓库:

Base

构成 Fedora Core 的软件包,和光盘上内容相同

Updates

Base 仓库中软件包的更新版本

Extras

一大批附加的软件包

[注意]过去版本的 Fedora

Fedora 4 自动地支持这三个仓库。如果是 Fedora 3 系统,您必须手动调整才能使用 Fedora Extras,可以按照 第 7 节 “使用其他软件仓库” 来做。

[警告]Fedora 开发仓库

Fedora Core 也包含了几个可选的仓库设置。它们提供测试的软件包,可以取代一个或多个标准的仓库。只有当您打算测试和开发 Fedora 软件时,才应当启用它们:fedora-devel (Rawhide), fedora-extras-devel, 和 updates-testing

第三方软件开发者通常也使用仓库,来提供自己软件的 Fedora 版本。要学习如何配置自己的 Fedora 系统来使用第三方仓库,可以阅读 第 7 节 “使用其他软件仓库”

您可以用 Fedora 仓库提供的 软件组 来管理相关的软件包集合。第三方仓库可以向这些组中添加软件包,也可以将自己的软件包放在新的组中。

[注意]现有的软件组

要查看您的 Fedora 系统中现有可用的软件组,运行命令 su -c 'yum grouplist'

使用仓库来保证您总是用着软件的最新版。如果仓库中提供了某个软件包的多个版本,管理工具会自动选择最新的那个。

[小心]安装软件,但不使用仓库

如果您确信,没有任何一个仓库提供了您需要的某个软件,那么再尝试手动安装它。您可能需要手动地管理这个软件包,无法应用 Fedora 软件包管理工具。

本文档中的 yum 命令使用仓库作为软件包来源。如果要使用 yum 从一个软件包文件来安装软件,可以参考 第 8 节 “从一个单独的软件包文件安装软件”

2.3. 关于依赖关系

Fedora 发行版中安装的某些文件属于 ,它为多个应用程序提供功能。如果一个应用程序需要某个特定的库,那么这个库就是一个 依赖。要正常地安装一个软件包,Fedora 必须首先满足它的依赖关系。一个 RPM 软件包的依赖信息储存在这个 RPM 文件中。

yum 工具使用软件包依赖关系数据来保证一个应用程序在安装前,所有的要求都已满足。它自动地安装依赖的软件包,如果系统中没有的话。如果某个新的应用程序的要求与现有的软件冲突,yum 会放弃,不对系统做任何修改。

2.4. 理解软件包名称

每个软件包文件都有一个很长的名字,包含了几个最重要的信息。例如,这就是 Fedora Core 中 tsclient 软件包的全名:

tsclient-0.132-6.i386.rpm

管理工具处理软件包时,通常使用如下三种格式之一:

  • 软件包名称:tsclient

  • 带有版本号和发行版本的软件包名称:tsclient-0.132-6

  • 带有硬件架构的软件包名称:tsclient.i386

为了清楚明白,yum名称.架构 的格式来列出软件包。仓库通常也将软件包存储在以架构区分的目录中。每次为软件包指定架构的时候,实际指定的是此软件对机器架构的 最低 要求。

i386

适于任何现有的 Intel 兼容计算机

noarch

适于所有架构

ppc

适于 PowerPC 系统,例如 Apple Power Macintosh

x86_64

适于 64 位 Intel 处理器,例如 Opterons

一些软件会为特殊类型的 Intel 处理器优化,为 i386, i586, i686x86_64 计算机提供不同的软件包。如果机器中有 Intel 奔腾,VIA C3 或其他兼容的处理器,那么可以使用 i586 软件包。如果机器中有 Intel 高能奔腾或更强劲的处理器,或是有时兴的 AMD 处理器,那么可以使用 i686 软件包。

yum 的命令行中,应当使用软件包的短名称。yum 会自动在符合您的机器架构的仓库中,选择版本最新的软件包。

用其他命名格式指定软件包,可以避免默认行为,强制 yum 使用指定版本或架构的软件包。只有当您知道默认选择有问题,不适宜安装时才应当这样做。

[提示]软件包名称

您可以在 yum 操作中,使用下列任一格式来指定软件包:name, name.architecture, name-version, name-version-release, name-version-release.architecture, 和 epoch:name-version-release.architecture