配置yum源

RPM 软件源(Repositories) 是一个目录,或是一个网站,包含了许多 RPM
软件包及其索引文件。 类似 yum 之类的软件包管理工具可以在仓库中自动地定
位并获取正确的
RPM 软件包。这样, 用户就不必手动搜索和安装新应用程序和
升级补丁了。只用一个命令,您就可以更新系统中所有软件,也可以根据指定搜
索目标来查找安装新软件。
一个软件源(
Repositories)中可能会配置多个软件仓库(Repository)
CentOS 默认自带 CentOS-Base.repo 源已经预先配置五个仓库(其中三个默认
启用,两个配置但未启用):
库名 内容
base 构成 CentOS 基本软件包,和光盘上内容相同,默认启用
updates Base 仓库中软件包的更新版本,默认启用
extras 一大批附加的软件包,默认启用
centosplus 针对 base updates 软件库内的组件的更新。这些更新组件
并不属于正式的发行,所以在扩展
CentOS 的功能同时牺牲了
与先前版本兼容性。启用这个软件库会导致
CentOS 与正式版
本有差别。 默认情况下是不启用这个库的,用户应该明白这样做
的后果才启用
centosplus
contrib 这个软件库包含了 CentOS 用户贡献的组件,它们并不会与核
心发行版本的组件重叠。这些组件并没有经过
CentOS 的开发
者测试,亦未必会同步跟随
CentOS 正式版本的发行。 默认情况
下是不启用这个库的,用户应该明白这样做的后果才启用
contrib

官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定
版。
CentOS 自带的源中也找不到很多多媒体软件(如 mplayer)和开发软件(如
Eclipse),如果需要安装,必需先添加其他源,如 EPELRPMFusion
RepoForge 等第三方软件源。
注意
有许多公司和社区提供 CentOS rpm 官方源,国内比较常用的有:
网易源:
http://mirrors.163.com
搜狐源: http://mirrors.sohu.com/
中科大源: http://centos.ustc.edu.cn/
CentOS 源: http://mirror.centos.org
我们随时可以到 CentOS 或者 Fedora Public Mirror List 中去查找最快
CentOS 或者 Fedora rpm 官方源:
CentOS:http://www.centos.org/modules/tinycontent/index.php?id=13
Fedora: http://mirrors.fedoraproject.org/publiclist/

注意
有许多公司和社区为兼容 RHEL Linux 发行版本提供第三方源,
比较常用的有:
EPEL 源: https://fedoraproject.org/wiki/EPEL/zh-cn


[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/
#
库的地址
enable =1
#
是否启用这个库, 1 是启用, 0 是不启用,如果 enable 参数缺失,默认为启用
gpgcheck=1
#
是否检查软件的 KEY1 是启用, 0 是不启用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#KEY
文件路径
我们试着去配置一个第三方源,首先确认系统是否安装了 yum-priorities 这个
yum 的插件,这个插件是用来保证安装软件时候软件仓库先后次序,一般是默认
先从官方源安装,然后从第三方软件仓库中安装:
[[email protected] ~]# yum install yum-priorities
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.7 kB 00:00
extras | 3.5 kB 00:00
google-chrome | 951 B 00:00
updates | 3.5 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-plugin-priorities.noarch 0:1.1.30-14.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================
Package Arch Version Repository Size
===================================================================
Installing:
yum-plugin-priorities noarch 1.1.30-14.el6 base 22 k
RepoForge 源: http://repoforge.org/
RPMFusion 源: http://rpmfusion.org/
Remi 源: http://rpms.famillecollet.com/


Transaction Summary
===================================================================
=============
Install 1 Package(s)
Total download size: 22 k
Installed size: 28 k
Is this ok [y/N]: y
Downloading Packages:
yum-plugin-priorities-1.1.30-14.el6.noarch.rpm | 22 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : yum-plugin-priorities-1.1.30-14.el6.noarch 1/1
Verifying : yum-plugin-priorities-1.1.30-14.el6.noarch 1/1
Installed:
yum-plugin-priorities.noarch 0:1.1.30-14.el6
Complete!
安装完以后查看 /etc/yum/pluginconf.d/priorities.conf 文件,确认文件中有
这三行:
[main]
enabled=1 #
启用本插件
check_obsoletes=1 #防止一些已经废弃(obsoletes)的包的出现
来到 RepoForge 官方网站 http://repoforge.org/use/ ,根据所使用的 Linux
发行版本选择适合的 rpmforge 发行包,如果不知道你所使用的 CentOS 具体版
本可以通过如下命令查看:
[[email protected] ~]# cat /etc/centos-release #查看发行版本号
CentOS release 6.3 (Final)
[[email protected] ~]# uname –r #
查看内核版本号和机器架构
2.6.32-279.19.1.el6.x86_64
[[email protected] ~]#
我们可以知道我们所使用的 Linux 发行版本为 CentOS 6.3(Final),内核版本
kernel 2.6.32-279.19.1.el6.x86_64,与 RHEL 6.3 兼容,因此我们选择 EL
6.0 x86_64
版本下载并安装。
[[email protected] ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-
0.5.2-2.el6.rf.x86_64.rpm

[[email protected] ~]# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
warning: rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature,
key ID 6b8d79e6: NOKEY
Preparing... ########################################### [100%]
1:rpmforge-release ########################################### [100%]
[[email protected] ~]#
[[email protected] yum.repos.d]# ls -l /etc/yum.repos.d/
总用量 36
-rw-r--r--. 1 root root 1926 12 26 23:13 CentOS-Base.repo
-rw-r--r--. 1 root root 637 6 26 2012 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 626 12
26 22:54 CentOS-Media.repo
-rw-r--r--. 1 root root 2593 12
26 22:54 CentOS-Vault.repo
-rw-r--r--. 1 root root 116 12
26 22:54 google-chrome.repo
-rw-r--r--. 1 root root 739 11
13 2010 mirrors-rpmforge
-rw-r--r--. 1 root root 717 11
13 2010 mirrors-rpmforge-extras
-rw-r--r--. 1 root root 728 11
13 2010 mirrors-rpmforge-testing
-rw-r--r--. 1 root root 1113 11 13 2010 rpmforge.repo
用文本编辑器打开/etc/yum.repos.d/rpmforge.repo,找到如下 rpmforge 仓库配
置部分,并在此部分最后添加
“priority = 10”,表示该源的优先级较低:
### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge

enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority = 10
优先级由 1 ~ 99 99 个数表示, 1 的优先级最高。优先级小的源即使有
某软件的较新版本,如果优先级高的源中没有,在启用该插件的情况下,系统也
无法安装
/升级到该较新版本。图形界面的 YUM 工具一般默认就已经包含了优
先级插件。
vim 打开 CentOS-Base.repo,找到如 baseupdates extra 仓库配置部分,
并在分别这些部分最后添加
“priority = 1”
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
# #
[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
priority = 1
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updat
es
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority = 1
#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/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority = 1

然后来安装 mplayer 这个软件来测试 RepoForge这个第三方源是否配置好了:
[[email protected] ~]#yum install mplayer mplayer-gui mplayer-doc mplayer-skins mplayertools


配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源配置yum源