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的列表,說明正確設置了第三方軟件源和它們的優先順序。