Linux下yum各种配置详解与yum命令详解

上一篇 / 下一篇  2012-05-28 20:40:48 / 个人分类:Linux 学习

使用 yum 工具更新系统
yum 简介
为什么使用 yum
Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装A软件,但是编译的时候告诉你X软件安装之前需要B软件,而当你安装Y软件的时候,又告诉你需要Z库了,好不容易安装好Z库,发现版本还有问题等。由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog的YUM(Yellow dog Updater, Modified),Debian的APT(AdvancedPackaging Tool)等。开发这些工具的目的都是为了要解决安装RPM时的依赖性问题,而不是额外再建立一套安装模式。这些软件也被开源软件爱好者们逐渐移植到别的发行版上。目前,APT和YUM都可以运行在Red Hat系统上。目前 yum 是Red Hat/Fedora系统上默认安装的更新系统。
什么是 yum
yum(http://linux.duke.edu/projects/yum/),是 Yellow dog Updater, Modified 的简称,起初是由yellow dog 发行版的开发者 Terra Soft 研发,用 python 写成,那时叫做 yup (yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的 repository,顾名思义,这是软件的仓库,它可以是 http 或 ftp 站点,也可以是本地软件池,但必须包含 rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些
header并加以分析,才能自动化地完成余下的任务。
yum 具有如下特点:
自动解决包的倚赖性问题能更方便的添加/删除/更新RPM包
便于管理大量系统的更新问题
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf)
保持与RPM数据库的一致性
有一个比较详细的log,可以查看何时升级安装了什么软件包等
使用方便
内容提要
1. 理解为什么使用 yum
2. 了解 CentOS 的镜像站点目录结构
3. 理解 CentOS 的仓库及镜像站点的关系
4. 学会配置各种更新源
5. 学会使用 yum 命令工具
6. 学会为 yum 配置代理
7. 学会使用 yum-fastestmirror 加快更新
8. 理解系统自动更新的配置方法
yum是CentOS/Fedora系统自带的,因此它能使用CentOS官方的软件源,完成各种官方发布的各种升级。对
于第三方软件源的支持,yum也不差,大多数支持 apt 的 repository,也能支持 yum,比如说
freshrpms、fedora.us、livna、dag 等。
CentOS 的镜像和仓库
CentOS 的镜像站点
完整的 CentOS 软件库非常大。CentOS 的软件包位于 CentOS 的镜像站点 的目录树中,可通过 FTP 或
HTTP 访问它们。
http://mirror-status.centos.org/可以看到各镜像的状态。
http://www.centos.org/modules/tinycontent/index.php?id=22可以看到如何进行镜像的知识。
镜像站点的第一级目录是发行版本号,如 3、4、5 等。 下列目录存在于任何 CentOS 镜像站点的版本号为5
的目录下:
addons/: 本目录包含 CentOS 的 addons 仓库
centosplus/: 本目录包含 CentOS 的 centosplus 仓库
extras/: 本目录包含 CentOS 的 extras 仓库
fasttrack/: 本目录包含 CentOS 的 fasttrack 仓库
isos-dvd/: 本目录包含发行版的 DVD iso 下载文件
isos/: 本目录包含发行版的 CD isos 下载文件
os/: 本目录包含发行版(distributions)的仓库
updates/: 本目录包含 CentOS 的 updates 仓库
CentOS 的仓库
仓库(repository)是一个预备好的目录,或是一个网站,包含了软件包和索引文件。 yum 可以在仓库中自
动地定位并获取正确的 RPM 软件包。这样,您就不必手动搜索和安装新应用程序和升级补丁了。只用一个命
令,您就可以更新系统中所有软件,也可以根据指定搜索目标来查找安装新软件。
镜像服务器为每个版本的 CentOS 分别提供了一些仓库。CentOS 5 中的软件管理工具 yum 已经预先配置
为使用下列四个仓库:
base: 构成 CentOS 发行版(distributions)的软件包,和光盘上内容相同
updates: base 仓库中软件包的更新版本
addons: 已编译的但不在发行版(distributions)中的软件包
extras: 一大批附加的软件包
还可以使用下面的仓库,但在 CentOS 5 默认情况下未被启用
centosplus/: 用于增强一些现有软件包的功能
CentOS 仓库的目录结构
下面以 CentOS 5 的 updates 仓库为例说明其在镜像站点上的目录结构(其他仓库结构类似):
updates/
|– SRPMS # 源代码目录
| |– *.src.rpm # 源代码包文件
| `– repodata/ # 源代码的索引文件
|– i386 # Intel 32位平台目录
| |– RPMS # Intel 32位平台的RPMS目录
| | |– *.i386.rpm # 在Intel 32位平台上编译的包文件
| | `– *.centos.noarch.rpm # 与平台无关的已编译的包文件
| `– repodata/ # Intel 32位平台的索引文件
`– x86_64 # 64位平台目录
|– RPMS # 64位平台的RPMS目录
| |– *.x86_64.rpm # 在64位平台上编译的包文件
| `– *.centos.noarch.rpm # 与平台无关的已编译的包文件
`– repodata/ # 64位平台的索引文件
配置 yum 客户的更新源
yum 使用 reposdir (/etc/yum.repos.d) 目录下的一系列 .repo 文件列出可获得软件包仓库的镜像站点地
址。默认情况下有如下两个文件:
CentOS-Base.repo :用于设置远程仓库
CentOS-Media.repo :用于设置本地仓库
在 .repo 文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法如下:
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
mirrorlist=url://path/to/mirrorlist/repository/
enabled=0/1
gpgcheck=0/1
gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository
其中:
repositoryid : 用于指定一个仓库
name : 用于指定易读的仓库名称
baseurl : 用于指定本仓库的 URL,可以是如下的几种类型:
http — 用于指定远程 HTTP 协议的源
ftp — 用于指定远程 FTP 协议的源
file — 用于本地镜像或 NFS 挂装文件系统
mirrorlist : 用于指定仓库的镜像站点
enabled : 用于指定是否使用本仓库,默认值为1,即可用
gpgcheck : 用于指定是否检查软件包的 GPG 签名
gpgkey : 用于指定 GPG 签名文件的 URL
在 name baseurl 中经常使用如下的变量:
$releasever — 当前系统的版本号
$basearch — 当前系统的平台架构
文件中以“#”开头的行是注释行
若指定 mirrorlist,系统将从 CentOS 的镜像站点中选择离您最近的仓库
并非所有的国内镜像都在 CentOS 的镜像站点列表中,所以我们可以直接使用 baseurl 直接指定离您最近的仓库
baseurl 可以指定多个 URL,系统会依次检查您列出的仓库,以便在某个服务器宕机时可以使用另外的服务器
为了加快更新,在确保更新服务器及线路良好的情况下,在 baseurl 中只指定一个 URL 既可

TAG: 命令 yum

 

评分:0

我来说两句

Open Toolbar