RHEL更换yum源为CentOS7

举报
Damon小智 发表于 2024/12/31 23:39:22 2024/12/31
【摘要】 RHEL在未注册时是无法使用yum的。如果使用yum命令。对于个人开发者,可以通过更换yum源的方法来继续使用,本篇文章将介绍如何更新RHEL的yum源为阿里的CentOS7镜像。

在 RHEL(Red Hat Enterprise Linux)系统中,如果未注册至 Red Hat 的授权服务器,用户将无法使用 yum 命令进行包管理。此时,尝试运行 yum 命令时会报错:

This system is not registered with an entitlement server. You can use subscription-manager to register.


这个错误提示表明系统没有注册到 Red Hat 服务器,因此无法访问官方的 RHEL 仓库。对于企业用户,解决方案是购买并注册 Red Hat 的服务。然而,对于个人开发者,解决方法是更换系统的 yum 源,通过使用第三方免费镜像来继续使用 yum。在本文中,我们将介绍如何将 RHEL 的 yum 源更新为阿里云提供的 CentOS 7 镜像,这样便能够绕过注册限制,继续使用 yum 命令。

1. 错误提示

如前所述,当 RHEL 未注册时,运行 yum 命令时会显示如下错误信息:

This system is not registered with an entitlement server. You can use subscription-manager to register.

为了解决这个问题,我们需要更换为免费的 yum 源,以确保系统可以继续使用 yum 安装和更新软件包。

2. 更换为免费的 yum

在这里,我们选择使用阿里云提供的 CentOS 7 镜像。阿里云的镜像是稳定且高速的,非常适合在国内使用。

2.1 删除系统自带的 yum 文件

首先,您需要切换到 root 用户权限。可以通过以下命令切换到 root 用户:

su

切换到 root 后,输入以下命令查询系统中已安装的 yum 文件:

rpm -qa | grep yum

然后,使用以下命令删除系统自带的 yum 文件:

rpm -qa | grep yum | xargs rpm -e --nodeps

此命令会强制删除与 yum 相关的所有包。如果删除过程中出现问题,可以根据错误提示进行排查,确保所有相关文件都已清除。

2.2 下载安装新的 yum

删除了系统自带的 yum 文件之后,接下来需要下载安装新的 yum 包。首先,下载以下所需的 yum 包:


wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

这些是 CentOS 7 中所需的基本 yum 依赖包,它们将帮助我们安装并配置新的 yum 源。

2.3 安装新的 yum

下载完所有需要的包后,可以开始安装这些包:

rpm -ivh yum-* #安装当前目录下所有yum-开头的rpm包
rpm -ivh python-* #安装当前目录下所有python-开头的rpm包

这里会遇到包之间依赖导致的错误:

解决方法是安装时使用强制命令:

rpm -ivh yum-* --force --nodeps #强制安装当前目录下所有yum-开头的rpm包
rpm -ivh python-* --force --nodeps #强制安装当前目录下所有python-开头的rpm包

这些命令将安装 yum 相关的依赖包。一旦安装完成,你将能够使用 yum 命令来管理系统的包。

3. 配置阿里云的 CentOS 7 镜像源

安装完 yum 后,我们需要配置新的镜像源。阿里云提供了 CentOS 7 镜像,我们可以编辑 yum 配置文件,将镜像源切换到阿里云的地址。

下面我们先备份原先的repo文件,再下载新的repo文件,这里以CentOS7为例:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

下载下来的repo文件里面出现的$releasever需要修改为CentOS的实际版本号,我们这里直接替换成7。

编辑 /etc/yum.repos.d/CentOS-Base.repo 文件,使用文本编辑器打开文件:

vi /etc/yum.repos.d/CentOS-Base.repo

然后,找到 baseurl 字段并修改为阿里云的镜像地址:

[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/7/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

对于其他的 repo 文件,如 CentOS-Updates.repoCentOS-Extras.repo,也可以按照相同的方式修改 baseurl 为阿里云的镜像地址。修改完成后,保存并退出编辑器。

4. 清理缓存并重新加载 yum 配置

配置完新的镜像源后,运行以下命令清理 yum 缓存,并重新加载配置:

yum clean all
yum makecache

这将清除旧的缓存,并使用新的镜像源更新缓存。

5. 验证 yum 是否正常工作

完成上述步骤后,可以尝试使用 yum 命令来安装一个包,验证是否正常工作。例如,尝试安装 wget 包:

yum install wget

如果安装成功,说明 yum 配置已成功更新,且新的镜像源工作正常。

常见问题

下面举例两种不顺利的情况:

① yum不存在

这种情况需要下载2.x版本的pythonpython3.x不支持yum的编译


② no module named yum错误

这个错误翻译成中文意思是yum缺少模块支持,一般是本机python版本和yum的包不匹配造成的,这种问题就非常复杂和麻烦,需要卸载yum的全部包重新安装,也不一定可以解决。

如果运气好的话,可能只是python路径没对应上,那vim /usr/bin/yum里修改#!/usr/bin/python为python对应版本的地址即可。

总结

通过更换 yum 源为阿里云的 CentOS 7 镜像,我们可以在 RHEL 9 系统中绕过 Red Hat 注册的限制,继续使用 yum 命令管理软件包。这种方法对于个人开发者或测试人员非常有用,因为它提供了一个免费的替代方案,可以确保系统的正常运行和包管理。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。