用yum管理软件

Stuart Ellis
Copyright (c) 2005 Stuart Ellis

法律事项
修订记录

——————————————————————————–

1. 简介
1.1. 文档目的
1.2. 阅读对象
1.3. 使用本文档
1.4. 附加资源

2. 软件管理概念
2.1. 关于软件包(Packages)
2.2. 关于软件仓库(Repositories)
2.3. 关于依赖(Dependencies)
2.4. 理解软件包名

3. Fedora Core中的软件管理工具

4. 用yum管理软件
4.1. 用yum安装新软件
4.2. 用yum升级软件
4.3. 用yum删除软件

5. 用yum搜索软件包
5.1. 通过软件包名和属性搜索
5.2. 高级搜索
5.3. 理解匹配

6. 用yum升级你的系统
6.1. 自动升级你的系统

7. 使用其他软件仓库
7.1. 添加仓库作为软件包源(Package Source)
7.2. 手动许可软件包源
7.3. 理解软件仓库兼容

8. 维护yum
8.1. 禁用或删除软件包源
8.2. 清除yum缓存

9. 手动安装软件

10. 通过代理服务器使用yum

====================================================================

1. 简介
1.1. 文档目的

本文档介绍Foedora系统软件管理的基本概念,简述yum的主要功能,Fedora中推荐使用的软件管理工具。

1.2. 阅读对象

本访文档供Fedora各种经验层次的用户使用。

1.3. 使用本文档

本文档为使用yum作参考。你可以根据你的需要和经验层次阅读其中的部分或全部章节。如果你是一个新用户,在第一次使用yum之前请阅读第2节“软件管理概念”。有经验的Linux用户可以从第4节“用yum管理软件”开始。

Fedora前版

本文档中的大多数例子使用软件包tsclien,该软件包已经包含在Fedora Core中。tsclient是个提供远程桌面访问的应用程序。如果你已经成功安装,你可以通过选择 应用程序(Applications)->互联网(Internet)->终端服务器客户端(Terminal Server Client)来启动它。例程命令中所用的Fedora软件包组(package groups)选择了MySQL数据库组。

避免用root帐号登录
你并不需要使用root帐号进行登录来管理Fedora系统。本指南提到的那些需要root帐号的所有命令,会提示你输入root密码,只要在命令前加上su -c,非常方便。

1.4. 附加资源

yum程序的功能和选项并不是本文档讨论的范围。使用下列命令来阅读man页,可以学习到更多yum(8)和yum.conf(5)的知识:
man yum
man yum.conf

在Internet上其它有用的yum资源包括:

项目(Project)web站
https://linux.duke.edu/projects/yum/

用户邮件列表
https://lists.dulug.duke.edu/mailman/listinfo/yum/

开发邮件列表
https://lists.dulug.duke.edu/pipermail/yum-devel/

==============================

2. 软件管理的概念

2.1. 关于软件包(Packages)

Fedora软件和文档是以一种叫RPM包的形式进行提供。每一个这种包都是包含了软件信息、程序文件、图标、文档和管理脚本等的压缩文件。管理程序使用 通过这些文件来安全地定位、安装、升级和删除软件。例如,Fedora安装程序就是根据你的需求用这种软件包来进行Fedora Cora系统的构建或升级的。

软件包内包含了一个数字签名用来验证它们的源。软件管理程序通过使用GPG公共密钥对该数字签名进行校验。yum和rpm程序共享的公共keyring(common keyring)为经过许可的所有软件包源存储公共密钥,并由系统管理员设定这些经过许可的软件包源。

2.2. 关于软件仓库(Repositories)

软件仓库是一种特别的目录或web站,它包含软件包及其索引文件。象yum之类的软件管理程序从这些软件仓库自动定位和获取正确的RPM包。这种方法免去 了你必须手动寻找、安装新软件或升级它们。你可以使用一个简单的命令来升级所有系统软件或通过指定规则进行新软件的搜索。

Fedora Core软件包管理程序已经配置好使用网络服务器来提供三种软件仓库:

· 象发行盘这种由Fedora Core整理打包的软件包。

· Fedora Core软件的升级版。

Fedora的以前版

所有的Fedora软件包都是开源软件

第三方(Third-party)软件开发者也会为他们制作的兼容Fedora的软件包提供仓库。要学习如何配置你的Fedora系统来使用第三方软件仓库,请参看第7节“使用其他软件仓库”。

你也可以通过使用Fedora软件仓库提供的软件包组(package groups)来管理相关的软件包套件。一些第三方软件仓库会添加软件包到这些组中,或以附加组(additional groups)的提供他们的软件包。

有效的软件包组(Package Groups)

使用软件仓库可以确保你接收的总是软件当前的版本。如果同样的软件包有几种有效版本,你的管理程序会自动选择最新的版本。

不从软件仓库安装软件

2.3. 关于依赖(Dependencies)

安装在Fedora中的一些库文件可以提供多种应用的功能。当一个应用程序需要一个特别的库时,包含这些库的软件包会被依赖。要完整地安装软件包,Fedora必须首先满足它的依赖。RPM包的依赖信息存储在RPM文件内。

yum程序使用软件包依赖数据来确定在安装程序时遇到的所有需求,它会为任何未出现在系统中的依赖自动安装软件包。如果一个新应用程序的需求与现存的软件相冲突,yum会中止而不会改变你的系统。

2.4. 理解软件包名(Package Names)

每个软件包文件都用一个长文件名来表征几个关键的信息。这是Fedora Core提供的tsclient包的完整名:
tsclient-0.132-6.i386.rpm

管理程序一般用以下三种格式之一来查阅软件包:

· 软件包名:tsclient

· 带有版本和释放号的软件包名: tsclient-0.132-6

为了明显起见,yum大都以“name.architecture”为格式列出软件包,软件仓库中也普遍保存软件包在以硬件体系(architecture)名分开的目录中。硬件体系指定了使用这些软件包所需要的最小机器类型。

i386
适用于任何当前Intel兼容机

noarch
兼容所有的计算机体系

ppc
适用于PowerPC系统,如Apple Power Macintish。

x86_64
适用于64位Intel兼容处理器,如Opterons。

一些软件可能对Intel兼容的机器类型进行过特别优化,分别提供给i386、i586、i686和x86_64体系的计算机使用的不同软件包,最小为 Intel的奔腾(Pentium)、威盛(VIA)的 C3或兼容的CPU可以使用i586的包,对Intel的Pentium Pro及其以上或AMD芯片的当前模式,可以使用i686的包。

yum命令中使用软件的短名称,将使yum自动在仓库中选择与你的系统相匹配的硬件体系的最新软件包。

而在操作过程中用其它命名格式指定软件包名,则会不顾缺省而强制yum使用指定匹配版本或硬件体系的软件包。只有在你已知缺省软件包选择存在Bug或其他问题而导致不稳定时,才使用强制方式进行安装。

软件包名(Package Names)

==============================

3. Fedora Core的软件管理工具

yum是一个完整的软件管理系统。Fedora core也包含其他几个程序为yum作补充。

在你的桌面有一个“警告图标(Alert Icon)”来为你保持有关软件包升级的信息,直到你的系统被升级图标显示为闪着感叹号标志红圈。警告图标是up2date程序的一部分,让你更容易进行系统升级。

Fedora Core也包含了system-config-packages。要从图形界面运行这个程序,运行“桌面(Desktop)->系统设置 (Sysmte Settings)->添加/删除程序(Add/Remove Applications)”。与up2date和yum不同的是,system-config-packages只从你的Fedora Core安装光盘安装软件包,而不能使用软件仓库,它主要用于你的系统无法连接网络时。

rpm命令行程序为使用单独的RPM包提供了很多功能,你可以使用它来手动从你的系统安装和删除软件包。如果你用rpm程序来安装软件,你必须手动检查和安装所有的文件依赖。为此,建议你采用yum安装方式。

当前软件包版本

==============================

4. 用yum管理软件

有四个方面需要用yum程序来改变系统中的软件:

· 从软件包仓库安装新软件

· 从一个独立的包文件安装新软件

· 在你的系统中升级已有软件

从一个软件包文件安装软件

要使用yum,要指定一个函数和一个或更多的软件包或软件包组。以下每节给出了一些例子。

对于每一次操作,yum会从已配置的软件仓库下载最后的软件包信息。如果你的系统使用较慢的网络连接,yum可能需要用几秒钟为每个软件包下载仓库索引和头文件。

yum程序搜索这些数据文件来决定最好的取得软件需求结果的动作集,同时显示处理过程让你选择。处理过程中可能会为了解决软件依赖而包括安装、升级或删除额外的附加软件包。

这是一个安装tsclient的处理过程:

Copy to Clipboard

例1.yum处理报告格式

查看改变的列表,并按y键同意和开始处理。如果你按N键或回车,yum不会下载和改变任何软件包。

软件包版本

如果还没有安装rpm keyring,yum程序也会导入软件仓库的公共密钥。

这是一个公共密钥导入的例子:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
public key not available for tsclient-0.132-6.i386.rpm
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
Importing GPG key 0x4F2A6FD2 “Fedora Project ([email protected])”

例2.yum公共密钥输入格式

检测公共密钥,然后按y键来导入该密钥并使它有效。如果你按N键或回车,yum不会安装任何软件包而停止。

要确定所下载软件包的真实性,yum通过公共密钥校验每一个软件包的数字签名。一旦所有需要的软件包都成功下载和校验,yum将在你的系统中应用它们。

下载缓存

4.1. 用yum安装新软件

要安装tsclient包,输入这个命令:

Copy to Clipboard

要安装MySQL数据库软件包组(package group),输入这个命令:

Copy to Clipboard

激活新服务的需求

4.2. 用yum升级软件

要升级tsclient软件包到最新的版本,健入:

Copy to Clipboard

新版本软件需要重新装入
当升级软件时如果它的一部分正被使用,旧版的活动部分会被留下而未更新直到程序或服务被重新启动。升级后的内核需要重启系统才会生效。

要升级软件包组MySQL数据库中的所有软件包,输入这个命令:

Copy to Clipboard

升级整个系统

4.3. 用yum删除软件

要删除软件,yum会检查你系统中的指定软件和任何与该软件有关的依赖,之后才进行删除软件和依赖的处理。

要从你的系统中删除tsclient软件包,使用这个命令:

Copy to Clipboard

要删除MySQL数据库软件包组中的所有软件包,输入这个命令:

Copy to Clipboard

数据和配置文件的保留

==============================