问题背景
同事发现一台 centos7 机器的 yum repo 不能使用, 现象为相关的 repo 的 meta 文件下载失败, 提示相关 meta 文件的下载路径有问题.
问题分析
通过终端输出的报错, 发现是 / etc/yum.repos.d/*.repo 配置文件中 \$releasever 变量没有加载到正确的值. 我们下面先看看 yum 几个主要变量的作用和设置方法.
yum 相关变量
$arch
作用: 标识 cpu 的架构, 如 i386,i486,i586 等
默认取值: 默认根据 cpu 架构自动取值
设置方法:
在 / etc/yum/vars/arch 文件写入一个值, 这个值就是这个变量的值 (优先级高)
$basearch
作用: 标识 cpu 的基本架构. 例如 i486 和 i586 等使用一个基本架构 i386,AMD64 和 Intel64 有一个基本的架构 x86_64.
默认取值: 默认根据 cpu 架构自动取值
设置方法: 在 / etc/yum/vars/basearch 文件写入一个值, 这个值就是这个变量的值 (优先级高)
$releasever
作用: 标识操作系统的版本号.
默认取值: 先查找 / etc/yum.conf 配置文件中 distroverpkg 配置的 value, 然后取得 value 对应的 rpm 包名, 最后获取到这个 rpm 包的 release 版本号就是这个变量的值 (如果是 centos 系统, 默认情况下 distroverpkg 的 value 为 centos-release, 再取 centos-release 这个包的 release 号)
设置方法: 在 / etc/yum/vars/basearch 文件写入一个值, 这个值就是这个变量的值 (优先级高)
问题解决
发现是 centos-release 这个 rpm 包被删掉了, 把这个包重装了一下,$releaserver 变量取值就正常了, 到此问题解决. 在 centos6/7 系统上, 如上 yum 相关变量的设置方法相同.
参考文章
#
来源: http://www.bubuko.com/infodetail-2769106.html