启用 yum 以在 EOL CentOS 6 上使用 [存储库更改]
目录
大家好。
我是系统解决方案部门的成员,我希望 1Gbps 或更高的网络连接成为默认设置。
强烈建议迁移旧环境,例如 CentOS 6 环境,但由于各种原因,某些环境可能会保留。
在这样的环境下,很容易遇到尝试使用“yum”进行更新或添加时无法使用的情况(使用会出现错误)。
这次,我将解释和解释“在 CentOS 6 上启用 yum(更改存储库)”的步骤来解决这种情况。
前言
- 我们不建议在 CentOS 6 上运行。
这是对 CentOS 6 的紧急回应 - 目的不是使用 Base 存储库,而是使“yum”可用。
- 这些步骤是因为它是默认存储库。
执行环境
■ Windows 环境
操作系统:Windows 11 Pro(版本:23H2)
语言设置:更改为日语■ 验证 CentOS 6 环境(Vagrant + VirtualBox)
操作系统:CentOS 6.9 (bento/centos-6.9)
Vagrant:2.4.1
VirtualBox:7.0.18 r162988 (Qt5.15.2)
IP:192.168.33.15
主机名:targetnode
用户名:vagrant
存储库原因 - 错误:无法找到存储库的有效基本 URL:base
$ yum info 加载的插件:fastestmirror 确定最快的镜像 YumRepo 错误:所有镜像 URL 均未使用 ftp、http[s] 或文件 例如,无效的版本/repo/arch 组合/删除没有有效镜像的镜像列表:/var/cache/ yum/x86_64/6/base/mirrorlist.txt 错误:找不到存储库的有效基本 URL:基本
使用``yum''经常会显示“Error: Cannot find a valid baseurl for repo: base”
这是由于 EOL 导致的,默认注册的所有存储库均已关闭(终止)。
因此,出现错误是因为“没有可用的存储库”。
您需要为 CentOS 6 设置另一个存储库来解决该问题。
工作流程
0.检查yum错误
请检查这一点以确保您不会在没有问题的情况下继续工作。
$ yum info 加载的插件:fastestmirror 确定最快的镜像 YumRepo 错误:所有镜像 URL 均未使用 ftp、http[s] 或文件,例如,无效的版本/repo/arch 组合/删除没有有效镜像的镜像列表:/var/tmp/ yum-vagrant-BcYfuY/x86_64/6/base/mirrorlist.txt 错误:找不到存储库的有效基本 URL:基本
⇓
错误:无法找到 repo 的有效 baseurl:base
现在我们已经确认了错误,让我们开始吧。
1. 备份您的存储库
对存储库进行任何更改之前,请先进行过时的备份。
您最终可能会在保存文件时删除所有内容,因此请务必保存。
$ cp -p /etc/yum.repos.d/CentOS-Base.repo /tmp/CentOS-Base.repo.`date +%Y%m%d` $ ls -l /tmp | grep CentOS-Base.repo -rw-r--r--.1 流浪者 1991 年 3 月 28 日 CentOS-Base.repo.2024xxxx
(它是在 /tmp 中创建的,因为它是临时备份)
提示:CentOS-Base.repo.`日期 +%Y%m%d`
使用`(反引号)将命令的结果视为字符串。
其中,我们使用 data 命令,可以通过指定格式(年、月、日)来显示日期和时间。
这很方便,因为您可以在执行命令时创建一个文件名末尾带有“年、月、日”的备份文件,而无需查看日历。
2. 更改存储库
○ 2-1. 检查默认状态
如果您将存储库保留为默认值,它应该如下所示:
$ less /etc/yum.repos.d/CentOS-Base.repo ~省略~ [base] name=CentOS-$releasever - 基本镜像列表=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo =os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ ~省略~ [更新] name=CentOS-$releasever - 更新mirrorlist=http://mirrorlist。 centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ ~省略~ [extras] name=CentOS- $releasever - 额外镜像列表=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$ basearch/ ~省略~ [centosplus] name=CentOS-$releasever - Plusmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror. centos.org/centos/$releasever/centosplus/$basearch/ ~省略~ [contrib] name=CentOS-$releasever - Contribmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra =$infra #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ ~省略~
○ 2-2. 镜像列表不起作用,因此禁用它(注释掉)
注释掉“mirrorlist=http://mirrorlist.centos.org”部分,但是编辑多个地方很容易出错。
因此,使用 sed 命令一次性全部替换。
$ sudo sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\/mirrorlist.centos.org/g" /etc/yum.repos.d /CentOS-Base.repo
○ 2-3. 重写baseurl并启用(注释中)
取消注释“#baseurl=”并指定使用 IIJ 提供的 CentOS 存储库。
*指定了截至 2024/07 可用的存储库。将来,如果有问题的存储库被终止,请指定另一个存储库。
这也可以使用 sed 命令立即替换。
$ sudo sed -i -e "s/^#baseurl=http:\/\/mirror.centos.org\/centos\/\$releasever/baseurl=http:\/\/ftp.iij.ad.jp\ /pub\/linux\/centos-vault\/\$releasever/g" /etc/yum.repos.d/CentOS-Base.repo
如果您想手动重写,请更改“#baseurl=”,如下所示。
#baseurl=http://mirror.centos.org/centos/$releasever ⇓ baseurl=http://ftp.iij.ad.jp/pub/linux/centos-vault/$releasever
○ 2-4. 变更/差异确认
检查编辑的存储库和备份的存储库之间的差异,以确认更改是否符合预期。
$ diff /etc/yum.repos.d/CentOS-Base.repo /tmp/CentOS-Base.repo.`date +%Y%m%d` 15,16c15,16 < #mirrorlist=http://mirrorlist. centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra < baseurl=http://ftp.iij.ad.jp/pub/linux/centos-vault/$releasever/os/$basearch/ -- ->mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra>#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch / ~省略~
只要能看到如上图所示的更改前后的差异就没有问题。
○ 2-5. 指定变量“$releasever”
要修复次要版本,请将版本写入“releasever”变量中。
这是通过创建一个变量文件来修复它来完成的。
(如果已经指定/修复,则不需要此响应)
$ ls -l /etc/yum/vars/ | grep releasever *检查是否尚未创建 $ sudo sh -c 'echo "6.9" > /etc/yum/vars/releasever' *创建并添加 * 以 root 身份运行如果是这样, echo "6.9" > /etc/yum/vars/releasever 就可以了。 $ cat /etc/yum/vars/releasever *检查是否写为 6.9
没有问题,因为显示的是我写的6.9。
3.检查yum运行情况并删除缓存
○ 3-1. 检查 yum 是否可以与 yum info 一起使用
让我们显示php包信息。
$ yum info php 加载的插件:fastestmirror 确定最快的镜像 可用软件包名称:php Arch:x86_64 版本:5.3.3 发布:49.el6 大小:1.1 M 存储库:base 摘要:用于创建动态网站的 PHP 脚本语言 URL:http: //www.php.net/ 许可证 : PHP 描述 : PHP 是一种 HTML 嵌入脚本语言 PHP 试图使其〜省略〜。
如果版本等显示如上所示,则 yum 工作正常,没有任何问题。
○ 3-2. 删除 yum 缓存
虽然不是必须的,但既然我们改了yum,就清除缓存吧。
$ sudo yum clean all 加载的插件:fastestmirror 清理存储库:基本额外更新 清理一切 清理最快镜像列表
完成
这样就完成了更改存储库以解决“yum”错误的过程。
最后
这个任务本身并不困难。
不过,当你想使用“yum”时,很容易因为这个错误而卡住,所以在CentOS 6环境下提前处理一下会比较容易。
我希望这篇文章能为阅读它的人提供一些有用的知识和信息。
感谢您阅读本文。
参考资料
如何更改阿里云CentOS 6仓库地址
?
8.2.3. 显示软件包信息 |
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/sec-displaying_package_information