redhat 7更换yum源

mac2024-05-07  36

卸载原来的源

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

最新回复(0)