(实用)Ubuntu 、CentOS更换国内源

时间:2021-10-04 09:48:30

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)

rpmForge现在更名为RepoForge,安装rpmforge源只要在官方网站找到适应自己CPU和操作系统版本的rpm包,然后安装即可。
     1. 找到适合自己机器的rpm包, http://repoforge.org/use/里面有用于x86和x86_64架构的各个版本的EL的rpm安装包,找到对应的链接,复制链接地址,比如,x86_64上的EL6:
  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  2. 安装rpm包, rpm命令可以直接下载远程rpm包安装
# 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的列表,说明正确设置了第三方软件源和它们的优先顺序。