(实用)Ubuntu 、CentOS更换国内源
Ubuntu更换apt-get源
通过编辑/etc/apt/sources.list文件,我们能够更换Ubuntu的默认软件更新源。通常是将其换成一些国内比较知名的源。本文主要列举这些内容。
注意,在直接变更/etc/apt/sources.list前,通常复制备份原文件,这样便于未来可能的恢复操作。
操作如下,
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup $ sudo vim /etc/apt/sources.list
从下面的列表中选择一个源替换sources.list文件中的原有内容后,执行
$ sudo apt-get update $ sudo apt-get upgrade
即可使用新的源完成更新。
看到过其他的一些帖子,给出的源各不相同,质量也参差不不齐,这里转发一个国内Ubuntu官方认可的软件源:
http://wiki.ubuntu.org.cn/index.php?title=%E6%BA%90%E5%88%97%E8%A1%A8&variant=zh-cn
CentOS换yum源:
以CentOS 6.3更换网易yum源为例,CentOS中yum源的目录为/etc/yum.repos.d/。
备份原有yum源
# mv /etc/yum.repos.d/Centos.repo /etc/yum.repos.d/Centos.repo.backup
*这一步应该先进入/etc/yum.repos.d/,确定具体的yum源文件后操作,我的发行版的yum源记录在Centos.repo文件中,也有可能名为CentOS-Base.repo
下载网易的yum 源文件,生成缓存
# cd /etc/yum.repos.d/ # wget http://mirrors.163.com/.help/CentOS6-Base-163.repo # yum clean all; yum makecache
更新系统
# yum -y update
网易的开源镜像站支持多种操作系统的不同版本,包括:Ubuntu、Debian、CentOS等等。可以查看:http://mirrors.163.com/,对应的操作系统可以查看右侧的“使用帮助”了解如何更换成网易的镜像源,比如CentOS的使用帮助界面:http://mirrors.163.com/.help/centos.html, 介绍网易开源镜像对CentOS5和CentOS6的支持。
上文仅仅添加了CentOS的基础镜像源,如果在yum安装软件时发现软件不足,可以添加下面的RPMForge源和EPEL源。
Centos添加RPMForge(RepoForge)
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
当然也可以使用wget下载到本地后安装。
Centos添加EPEL(Extra Packages for Enterprise Linux)源:
# yum install epel-release
CentOS管理软件源的顺序
前面的操作同时为CentOS添加了官方和第三方的软件源,下面的设置可以管理安装软件时搜索它们的先后顺序。
1. 安装yum-priorities插件
yum-priorities插件用来保证安装软件时候软件仓库先后次序(priority优先权),一般是默认先从官方base或者镜像安装,然后从社区用户contribute的软件中安装,再从第三方软件仓库中安装。当然这个次序可以自己更改,为了安全和稳定还是依照这个次序吧。
# yum install yum-priorities
2、查看/etc/yum/pluginconf.d/priorities.conf文件
# vim /etc/yum/pluginconf.d/priorities.conf
确认文件中有以下内容:
[main] enabled=1
3、设置/etc/yum.repos.d/CentOS-Base.repo文件,添加顺序指令priority=N(N 从 1 至 99,1 的优先级最高)。
vim /etc/yum.repos.d/CentOS-Base.repo
在[base]、[updates]、[addons]、[extras]段的最后分别添加priority=1,[centosplus]、[contrib]最后分别设置priority=2,第三方软件源(RepoForge和EPEL)的各个段设置priority=N(推荐N>10)。
例如, /etc/yum.repos.d/CentOS-Base.repo文件的[base]段:
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1
[updates]
...
将[base]段的优先级设为1.
又如/etc/yum.repos.d/rpmforge.repo文件的[rpmforge]段:
[rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://mirrorlist.repoforge.org/el6/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=11
将[rpmforge]段的优先级设为11.
4、验证设置成功
# yum check-update
看到显示的结果中包括rpmforge和epel的列表,说明正确设置了第三方软件源和它们的优先顺序。