Yum 似乎无法识别 Centos repos 文件中的 $releasever 变量

Yum 似乎无法识别 Centos repos 文件中的 $releasever 变量

我尝试在 Centos 7 集群上使用 yum 安装软件包,但收到以下错误:

One of the configured repositories failed (Unknown), 
and yum doesn't have enough cached data to continue. At this point the only 
safe thing yum can do is fail. There are a few ways to work "fix" this: [...]

我在线尝试了几种建议的解决方案(yum clean all;删除缓存;删除存储库数据库并重建等),但没有任何效果。

经过几个小时的故障排除后,我设法找到了解决方法。在/etc/yum.repos.d/CentOS-Base.repo文件中,我取消了该baseurl行的注释,并将变量替换$releasever为“7”(即操作系统的版本)。由于某种原因,yum 无法识别 $releasever 并且无法找到该存储库。

所以而不是:

baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

我有:

baseurl=http://mirror.centos.org/centos/7/os/$basearch/

之后 yum update 和 yum install 似乎都工作正常。但是,我不知道这是否是问题的永久解决方案。

有人可以告诉我发生了什么事以及是否有更合适的方法来解决这个问题?

谢谢。

答案1

我最近遇到了这个问题。设置releasever对我有用。我还发现我可以修复distroverpkg中的设置/etc/yum.conf

我将其设置为:

distroverpkg=centos-release

这对我有用。

答案2

我找到了解决方案。

yum --installroot=/usr/local install nginx --releasever=7

但为什么失败仍然没有弄清楚。

相关内容