美文网首页
yum&python版本问题解决

yum&python版本问题解决

作者: 张慕侠 | 来源:发表于2020-01-16 17:32 被阅读0次

    背景&问题

    项目原因,需要对一台机器做kerberos授权。
    使用yum安装kerberos过程中,遇到一些问题:

    yum命令报错
    $ yum
    There was a problem importing one of the Python modules required to run yum.The error leading to this problem was:
    No module named yum
    ...
    
    yum报错.png
    版本问题

    安装yum的python module之后,使用yum安装软件,仍然有版本问题

    xxx has missing requires of python
    xxx has missing requires of /usr/bin/python
    xxx has missing requires of python(abi) = ('0','2.6',None)
    xxx has missing requires of python >= ('0','2.0',None)
    ...
    
    version问题.png

    相关知识

    rpm是啥: 本意是Red-Hat Package Manager,但是其他Linux版本也支持,可以看成通用的Linux软件包管理的工具。
    yum又是啥:Yellow dog Updater, Modified的缩写(不能见名知意),一顿百度之后,我简单理解成,yum是python实现的,基于rpm的一个易用封装(屏蔽了rpm的软件包依赖等细节)

    分析、解决

    所以回过头来分析遇到的问题:
    yum不可用,是一个python问题;
    而yum可用,yum安装报版本的错误,其实是通过yum/rpm安装的软件有版本问题;
    通过和正常机器的比对,发现本台机器的python2.6,是野路子安装的,不是通过rpm安装。yum安装软件,找不到使用rpm安装的python,于是就有missing requires of python的问题。所以,通过rpm装一个python2.6,理论上就通了。
    不过安装过程中,访问正常的rpm仓库(http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages等),看到的python-2.6.6.rpm包,版本都是python-2.6.6-66.el6_8.x86_64,适合centos6.8以上,理由是其他版本的centos软件包不维护升级,有安全风险。而我们的服务器是centos6.3,不能使用这个包。

    readMe.png
    最终按照http://mirrors.ustc.edu.cn/centos/6.3/readme中的提示,找到了老版本的rpm包,安装了与centos6.3配套的python包,才解决了问题。
    如下为查找、删除、安装rpm包命令
    #rpm安装的python相关包
    rpm -qa|grep python
    #删除软件
    rpm -ev xxx
    #安装rpm包
    rpm -Uvh xxx.rpm
    ...
    

    收获

    收获有二:
    任何时候,定位问题最快的方式,还是拿完美环境和问题环境,做对比,找diff,diff的点,往往就是问题点。程序员的控制变量法,颠扑不破。
    得搞懂各种概念,之前对rpm、yum只是大概了解,通过这次定位解决问题,有了更深入的了解。

    相关文章

      网友评论

          本文标题:yum&python版本问题解决

          本文链接:https://www.haomeiwen.com/subject/blyfzctx.html