配置yum源
RPM 软件源(Repositories) 是一个目录,或是一个网站,包含了许多 RPM
软件包及其索引文件。 类似 yum 之类的软件包管理工具可以在仓库中自动地定
位并获取正确的 RPM 软件包。这样, 用户就不必手动搜索和安装新应用程序和
升级补丁了。只用一个命令,您就可以更新系统中所有软件,也可以根据指定搜
索目标来查找安装新软件。
一个软件源(Repositories)中可能会配置多个软件仓库(Repository)。
CentOS 默认自带 CentOS-Base.repo 源已经预先配置五个仓库(其中三个默认
启用,两个配置但未启用):
官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定
版。 CentOS 自带的源中也找不到很多多媒体软件(如 mplayer)和开发软件(如
Eclipse),如果需要安装,必需先添加其他源,如 EPEL、 RPMFusion 和
RepoForge 等第三方软件源。
[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
#是否检查软件的 KEY, 1 是启用, 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
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,找到如 base、 updates 和 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 之类的软件包管理工具可以在仓库中自动地定
位并获取正确的 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),如果需要安装,必需先添加其他源,如 EPEL、 RPMFusion 和
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
#是否检查软件的 KEY, 1 是启用, 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,找到如 base、 updates 和 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