/etc/yum.repos.d/CentOS-Base.repo
文件中所有的源主機地址修改為http://vault.centos.org,並且將$releasever替換為當前系統所使用的CentOS版本,可以使用6.x最后的版本6.10。注意,需要將所有其他備用的主機都刪除,內容如下:
[base]
name=CentOS-6.10 - Base - vault.centos.org
failovermethod=priority
baseurl=http://vault.centos.org/centos/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.10 - Updates - vault.centos.org
failovermethod=priority
baseurl=http://vault.centos.org/centos/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.10 - Extras - vault.centos.org
failovermethod=priority
baseurl=http://vault.centos.org/centos/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.10 - Plus - vault.centos.org
failovermethod=priority
baseurl=http://vault.centos.org/centos/6.10/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://vault.centos.org/centos/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.10 - Contrib - vault.centos.org
failovermethod=priority
baseurl=http://vault.centos.org/centos/6.10/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://vault.centos.org/centos/RPM-GPG-KEY-CentOS-6
/etc/yum.repos.d/
目錄沒有除了CentOS-Base.repo之外其他以repo結尾的文件,如果有的話需要刪除,然后執行
yum clean all && yum makecache
更新和啟用新的yum源。
因為http://vault.centos.org/的服務器在國外,在國內進行更新的時候非常慢,而且經常會出現超時的錯誤,因此需要自己做一個本地的源。如何同步在http://vault.centos.org/readme.txt中有詳細的說明,創建一個需要同步的目錄,然后執行下面的命令即可自動同步:
rsync -a -v --exclude=debug --exclude=i386 rsync://archive.kernel.org/centos-vault/6.10/ /data/centos-vault/6.10/
上面將i386去除,是因為我用的是64位的系統,具體根據自己的情況進行設置。
默認情況下rsync是在前台運行的,在命令最后加&也無效,可以采用下面的步驟將其轉為后台運行:
(1)運行上面的rsync命令;
(2)在運行的時候按 Ctrl+Z
,這個時候會暫停上面的命令;
(3)輸入bg
並回車,這個時候就將rsync轉移到后台運行了。
可以輸入jobs
命令查看后台正在運行的任務。可以在命令行后面加--progress
參數查看正在運行的進度,如下圖:
第一次運行之后的時間非常長,可以通過查看進度來查看其完成的情況,如果第一次完成之后可以將rsync命令加入到定時任務中,如下表示每天凌晨1點鍾自動進行同步更新:
0 1 * * * /usr/bin/rsync -a -v --exclude=debug --exclude=i386 rsync://archive.kernel.org/centos-vault/6.10/ /data/centos-vault/6.10/ || echo "rsync died with error code $?" >> /var/log/rsync-centos-vault.log
后面的echo可以記錄當執行出現錯誤的時候將錯誤碼寫入到日志文件里面。
PS:因為鏡像會占用大量的硬盤空間,如果在文件中使用軟鏈接的話,需要增加-L -K
參數,前者會在同步的時候考慮到軟鏈接,后者會在同步的時候保持軟鏈接的狀態,否則會刪除軟鏈接。