卸载原来的源
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