首页 > 代码库 > CentOS 使用 yum 更新软件包与系统

CentOS 使用 yum 更新软件包与系统

1、CentOS 更新源配置文件说明 
CentOS 6.5 更新源配置文件 /etc/yum.repos.d/CentOS-Base.repo 片段 
[base] 
name=CentOS-$releasever - Base 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os 
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#released updates  
[updates] 
name=CentOS-$releasever - Updates 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates 
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

解释 
在.repo文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法如下: 
[repositoryid] 
name=Some name for this repository 
baseurl=url://server1/path/to/repository/ 
url://server2/path/to/repository/ 
url://server3/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:用于指定一个仓库,例如 [base] 
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即可。 

2、使用国内镜像的更新源 
CentOS 安装完毕,首先应该修改更新源,并升级到最新的系统。 
国内速度较快的常用更新源: 
http://centos.ustc.edu.cn/centos/ 中科大,教育网推荐 
http://mirrors.163.com/centos/    网易 

首先备份配置文件 
cd /etc/yum.repos.d/ 
cp CentOS-Base.repo CentOS-Base.repo.bak 

修改更新源如下: 
[base] 
name=CentOS-$releasever - Base 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os 
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#released updates 
[updates] 
name=CentOS-$releasever - Updates 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates 
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#packages used/produced in the build but not released 
[addons] 
name=CentOS-$releasever - Addons 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons 
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#additional packages that may be useful 
[extras] 
name=CentOS-$releasever - Extras 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras 
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#additional packages that extend functionality of existing packages 
[centosplus] 
name=CentOS-$releasever - Plus 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus 
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

#contrib - packages by Centos Users 
[contrib] 
name=CentOS-$releasever - Contrib 
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib 
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ 
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ 
http://centos.ustc.edu.cn/centos/$releasever/contrib/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 

配置时只需要根据各家源情况,有选择的配置 [base] [updates] [addons] [extras] [centosplus] 这几项。每一项只要修改 baseurl 和 gpgkey 为相应源地址即可。配置结束之后,要清空 yum 缓存,并重建 yum 缓存,命令如下: 
yum clean all && yum clean metadata && yum clean dbcache && yum makecache && yum update 

3、自动选择最快的源 
由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror: 
#yum install yum-fastestmirror 
配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf 
yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt 

4、使用图形界面的yum 
如果觉得命令行的yum不方便,那么可以使用图形化的yumex,这个看起来更方便,因为可以自由地选择软件仓库: 
#yum install yumex 

然后在系统工具中就可以看到yum extender了。实际上系统自带的“添加/删除程序“也可以实现图形化的软件安装,但有些yumex的功能它没有。

5、yum命令简介
yum check-update 检查可更新的所有软件包
yum update 下载更新系统已安装的所有软件包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum install <packages> 安装新软件包
yum update <packages> 更新指定的软件包
yum remove <packages> 卸载指定的软件包
yum groupinstall <groupnames> 安装指定软件组中的软件包
yum groupupdate <groupnames> 更新指定软件组中的软件包
yum groupremove <groupnames> 卸载指定软件组中的软件包
yum grouplist 查看系统中已经安装的和可用的软件组
yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
yum list available 列出资源库中所有可以安装的rpm包
yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包
yum list updates 列出资源库中所有可以更新的rpm包
yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包
yum list installed 列出资源库中所有已经安装的rpm包
yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
yum list recent 列出最近被添加到资源库中的软件包
yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
yum clean headers 清除缓存中的rpm头文件
yum clean packages 清除缓存中rpm包文件
yum clean all 清除缓存中的rpm头文件和包文件
yum deplist <packages> 显示软件包的依赖信息
yum info 列出包信息
当第一次使用 yum 或 yum 资源库有更新时,yum会自动下载所有所需的 headers 放置于 /var/cache/yum 目录下,所需时间可能较长。
yum 命令可以使用 -y 参数用于用 yes 回答命令运行时所提出的问题。

CentOS 使用 yum 更新软件包与系统