卸載原來的源
rpm -qa|grep yum|xargs rpm -e --nodeps
下載新的yum相關軟件包
這裏我們需要用到下面的五個:
python-urlgrabber-3.10-9.el7.noarch.rpm
rpm-4.11.3-40.el7.x86_64.rpm
yum-3.4.3-163.el7.centos.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
比如我們從阿里雲上下載,可以使用下面的命令下載
curl -o /tmp/python-urlgrabber-3.10-9.el7.noarch.rpm https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-9.el7.noarch.rpm
curl -o /tmp/rpm-4.11.3-40.el7.x86_64.rpm https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/rpm-4.11.3-40.el7.x86_64.rpm
curl -o /tmp/yum-3.4.3-163.el7.centos.noarch.rpm https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm
curl -o /tmp/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
curl -o /tmp/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
下載完成以後安裝.在安裝的時候可能會提示存在文件衝突,根據http://man.linuxde.net/rpm中的介紹,在執行安裝語句的時候加上選項–force
rpm -ivh --force rpm-4.11.3-40.el7.x86_64.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm python-urlgrabber-3.10-9.el7.noarch.rpm yum-3.4.3-163.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
配置yum源的配置文件
由於阿里雲的鏡像站存在幾個url不通,所以我們換成清華的鏡像站。編輯/etc/yum.repos.d/CentOS-Base.repo,添加如下內容:
# 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-7 - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-7 - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-7 - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
清華大學鏡像站提供的源的配置文件內容中,存在$releasever的參數,這個參數在centos中能夠正常運行,但是在redhat下,需要把它變成對應的系統版本。可以在vi編輯器下執行下面的命令:
:1,$s/$releasever/7/g
或者直接在命令行輸入如下命令:
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
生成新的緩存
yum clean all
yum makecache
可能問題
原狀態爲disable狀態
使用yum repolist all命令查看,發現centosplus/x86_64狀態爲禁用,如下:
[root@localhost tmp]# yum repolist all
已加載插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
源標識 源名稱 狀態
base/x86_64 CentOS-7 - Base 啓用: 10,097
centosplus/x86_64 CentOS-7 - Plus 禁用
extras/x86_64 CentOS-7 - Extras 啓用: 305
updates/x86_64 CentOS-7 - Updates 啓用: 686
此時無法正常安裝軟件,可以將源配置文件的enable改成1即可
獲取 GPG 密鑰失敗:[Errno 14] curl#37 - “Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7”
從阿里雲或者其他鏡像站上,將RPM-GPG-KEY-CentOS-7下載到/etc/pki/rpm-gpg/下即可:
curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7