• yum相关变量浅析


    问题背景

    同事发现一台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/releasever文件写入一个值,这个值就是这个变量的值(优先级高)

    问题解决

    通过python获取yum相关变量的值:

    # python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'

    最终发现是centos-release这个rpm包被删掉了,把这个包重装了一下,$releaserver变量取值就正常了,到此问题解决。在centos6/7系统上,如上yum相关变量的设置方法相同。

  • 相关阅读:
    uitoolbar 圆角
    json
    MFC 控件使用笔记
    automake和autoconf使用介绍
    [译]C# Socket连接请求超时机制
    linux 环境变量的配置
    OK6410,修改调试串口,屏蔽调试输出,增加启动画面
    UML图各类符号含义
    图解UML类与类之间的六中关系
    C#综合揭秘——深入分析委托与事件
  • 原文地址:https://www.cnblogs.com/reachos/p/11089013.html
Copyright © 2020-2023  润新知