引言:redhat自带的yum源好像是需要注册还是什么的,也没有做过详细的了解,这里对大家讲解的是切换CentOS的yum源,自己在网上看到了很多这样的文章,但是不是地址失效就是造成系统命令都无法执行了。
所以在此自己总结了一下,分享给大家。
首先,为大家提供三个镜像站:
网易镜像站的地址:http://mirrors.163.com/
CentOS镜像站地址:http://mirror.centos.org/
阿里云镜像站地址:https://opsx.alibaba.com/mirror/无论是我们下载的yum包,还是通过yum命令下载的包,一般的话都是这两个镜像站的资源。在后面我们修改yum的配置文件时会切换到这两个镜像地址。希望大家记下这两个地址,想查询一些依赖包时可去这里查询。
其次,为大家讲下切换yum源的方法,以及要注意的东西,没有什么地址会永久不变的,所以网上有很多文章中的地址都已经失效了。如果原封不动的去搬过来只能导致系统出错,所以在这里我要跟大家讲下怎么避免这个错误。
先确认地址是否失效:把我下面提供的地址先粘贴到浏览器中,看看是否会出现下载页面,如果出现则证明没有失效,如果出现404,不用说已经失效了。
那失效了,怎么找呢?这就用到了上面这两个地址了,通过自己系统的版本与系统位数(32/64)来网站上自己查找。
选择版本:可能你的系统版本是6.7,但是发现镜像站中6.7的链接里没有包,那么就去找大版本的包,也就是说去6.0或者6的链接中区寻找。
如果不知道版本信息,请参考:https://blog.csdn.net/qq_36007926/article/details/88713879
接下来,进入正题,切换yum源
这里是我为大家提供的yum所需要的包的地址:
1.下载yum所需要的包
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm2.检查系统自带的yum包
rpm -qa |grep yum
3.删除自带包
rpm -aq | grep yum | xargs rpm -e --nodeps
4.再检查一下
rpm -qa |grep yum
5.执行安装
rpm -ivh yum-*如果这里执行报错的话
[root@redhat67 lib]# rpm -ivh yum-*
warning: yum-3.2.29-81.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-81.el6.centos.noarch
[root@redhat67 lib]#说明你需要更新python-urlgrabber的版本,我们先前已经下载完成了直接更新就可以了
rpm -Uvh python-urlgrabber-3.9.1-11.el6.noarch.rpm然后在执行
rpm -ivh yum-*
6.下面修改yum的配置文件(这里需要在镜像站下载一个配置文件CentOS6-Base-163.repo)
cd /etc/yum.repos.d/
mv redhat.repo redhat.repo.bak
mv rhel-source.repo rhel-source.repo.bak
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
vi CentOS6-Base-163.repo配置文件中需要去检查一下地址是否有效,在我下方标记红色的地方是需要修改的,蓝色的地方是需要查看是否有效的。
配置文件中标记红色的url中的“$releasever”是需要修改为你系统的版本的与上面查找版本类似,修改完成后,粘贴在浏览器中查看时候有效。粘贴是请不要粘贴“$basearch/”因为这个是你的版本号。
如果下载配置文件CentOS6-Base-163.repo的地址失效的话,就手动添加。
7.清理缓存
yum clean all
8.将服务器上的软件包信息下载到现在本地缓存,以提高 搜索 安装软件的速度
yum makecache如果这步报错的话,查看错误信息,如果发现
Determining fastest mirrors
http://mirrors.163.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
To address this issue please refer to the below knowledge base articlehttps://access.redhat.com/articles/1320623
If above article doesn't help to resolve this issue please open a ticket with Red Hat Support.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
这样的错误信息,请仔细查询配置文件,看是否有哪里忘记修改了。
9.验证
yum install telnet
# 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-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
到这里就已经给大家介绍完成了,大家有什么问题的话,或者我哪里写错的话,希望大家评论出来,我们再慢慢探讨,谢谢大家!