背景\需求: Redhat 7自带的yum源需要付费注册,未注册情况下会报如下错误,且用yum repolist all检查源数目为0。这时候需要将RedHat 7自带的yum源 替换成CentOS 7免费源
使用的源为网易163开源镜像站 http://mirrors.163.com/ 替换的目标版本为7.5.1804,点击红框内的CentOS 即可查看它包含哪些版本 (注意:163源会定期更新,选择版本前请看文档最后更新的注意事项)。
步聚:
一、 替换原系统中yum包:
1.1 检查初始的yum包有哪些
rpm -qa |grep yum
1.2 执行 rpm -qa|grep yum|xargs rpm -e --nodeps 删除原始的yum包。执行完成后,再次执行1.1中命令,如果为空即为成功。
1.3 下载163镜像站中CentOS 7下的 yum相关包:
wget http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/yum-3.4.3-158.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
网址可能会变,如果下载失败 则进入http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/ 检查一下,网址中的版本号替换为目标版本。
1.4 为避免依赖问题,建议执行 rpm -ivh yum-*,一次性安装下载的三个软件包
1.5 执行rpm -qa |grep yum 检查安装是否成功
二、替换原有的源地址文件
2.1 在/etc/yum.repos.d/目录下备份系统自带的源地址文件
例如:本地文件名称是rhel-source.repo,执行
mv /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.backup
2.2 同样在/etc/yum.repos.d/目录下,下载163镜像站内的镜像源文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo。(注意:同样的,网址可能会变动,可以手动进入 http://mirrors.163.com/.help/centos.html,确认一下文件和版本)
2.3 将下载的CentOS7-Base-163.repo文件中的 $releasever 全部修改为目标版本 7.5.1804。修改完成后 如图:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# 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.5.1804 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7.5.1804&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/7.5.1804/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-7.5.1804 - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7.5.1804&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/7.5.1804/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-7.5.1804 - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7.5.1804&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/7.5.1804/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7.5.1804 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/7.5.1804/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.4 执行 yum clean all,清理之前的缓存,这时候 有可能会有 替换之前的报错,可以不用理会
2.5 执行 yum makecache,重新生成缓存。
2.6 执行 yum repolist all,检查源是否已经更新、
=============================================================================
2019-03-21 有关于163源版本选择的更新
163源会定期推出新的源的版本,并将之前的源目录下的文件清理掉,所以在选择源的时候一定要先确认一下。例如:今天的时候发现,之前使用的7.5.1804版本的源已被清理。 访问 http://mirrors.163.com/centos/7.5.1804/ 时,可以看到之前的安装包已经全部被清理只留下了告知用户源已经更新的readme。
以截止今日 更新的最新的源版本 7.6.1810为例,访问http://mirrors.163.com/centos/7.6.1810/时,有如下目录的才是可用的源版本。