卸载 Python ,导致 yum 不能用问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
we3613040

卸载 Python ,导致 yum 不能用问题

  •  
  •   we3613040 Apr 27, 2017 9001 views
    This topic created in 3286 days ago, the information mentioned may be changed or developed.
    这个问题就是比较麻烦,谈不上多高深,原理简单,也没深究,希望可以帮助有遇到这个问题的人。

    环境 centos6.5
    由于 python 版本问题,将系统自带的 2.6 版本的 python 给卸载了,升级成了 2.7
    # 卸载旧的 python
    sudo rpm -evf --nodeps python
    python -V
    Python 2.7.6
    然后 yum 就不能用了
    导致 yum 无法使用
    # yum -v
    There was a problem importing one of the Python modules
    required to run yum. The error leading to this problem was:

    No module named rpm

    Please install a package which provides this module, or
    verify that the module is installed correctly.

    It's possible that the above module doesn't match the
    current version of Python, which is:
    2.7.6 (default, Dec 15 2016, 13:09:45)
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]

    If you cannot solve this problem yourself, please go to
    the yum faq at:
    http://yum.baseurl.org/wiki/Faq

    由于 yum 是基于 python
    centos6.5 默认使用 python2.6.6,我又源码安装了一遍 python2.6.6,
    修改了 vi /usr/bin/yum
    #/usr/bin/python 修改为#/usr/bin/python2.6
    执行 yum-v 还是不行~~
    于是就找到 python 和 yum 的 rpm 包安装,一番尝试之后,发现有 N 个 package 需要重新安装,这里只能一个一个的都安装上,装上 python 的 yum 模块
    检查方法
    python 进入 python 解释器
    import yum 如果成功就可以使用 yum 模块了

    解决方法如下
    rpm 包地址 http://mirrors.ustc.edu.cn/centos/6/os/x86_64/Packages/ 64 位包下载

    需要安装这几个包
    python-2.6.6-29.el6.x86_64.rpm

    python-devel-2.6.6-29.el6.x86_64.rpm

    python-iniparse-0.3.1-2.1.el6.noarch.rpm

    python-setuptools-0.6.10-3.el6.noarch.rpm

    python-urlgrabber-3.9.1-8.el6.noarch.rpm

    rpm-python-4.8.0-19.el6.x86_64.rpm

    yum-3.2.29-22.el6.centos.noarch.rpm

    yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

    python-pycurl-7.19.0-8.el6.x86_64.rpm
    注意 rpm 命令,必须要追加 replacepkgs 参数,强制其重新安装,否则 rpm 会报告说 package 已安装。
    rpm -Uvh replacepkgs ***.rpm
    # python
    Python 2.6.6 (r266:84292, Dec 7 2011, 20:48:22)
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
    Type “ help ”, “ copyright ”, “ credits ” or “ license ” for more
    information.
    >>> import yum
    如果仍有 packag 缺失,import yum,会提示相关的错误,查找对应的 rpm,装上即可,重复此过程,直到 yum 正常。
    26 replies    2017-09-13 10:19:42 +08:00
    LokiSharp
        1
    LokiSharp  
       Apr 27, 2017
    yum install epel-release -y
    LokiSharp
        2
    LokiSharp  
       Apr 27, 2017   1
    yum install dnf

    然后扔掉 yum 用 dnf 做包管理
    wyntergreg
        3
    wyntergreg  
       Apr 27, 2017
    @LokiSharp 喜感
    TKKONE
        4
    TKKONE  
    PRO
       Apr 27, 2017
    作死。centos6 的 yum 依赖 python2.6
    LokiSharp
        5
    LokiSharp  
       Apr 27, 2017
    @wyntergreg #3 别笑,dnf 不依赖 python2.6,想扔掉 python 2.6 只能这样
    wyntergreg
        6
    wyntergreg  
       Apr 27, 2017
    @LokiSharp 楼主的 python2.6 都挂了,你输 yum 命令觉得能执行吗?
    LokiSharp
        7
    LokiSharp  
       Apr 27, 2017
    @wyntergreg #6 那就下源码编译一个 dnf 咯 他 CentOS 6 其实也没办法 yum 装 dnf
    PythonAnswer
        8
    PythonAnswer  
       Apr 27, 2017 via Android
    dnf 要替代掉 yum 了吧。
    Kilerd
        9
    Kilerd  
       Apr 27, 2017 via iPhone
    你不会看了论坛的另外一个帖子就去升级了吧
    koolob
        10
    koolob  
       Apr 27, 2017
    不卸载 2.6,单独安装 python2.7,然后把 yum 中的改成 python2.6,然后把系统默认使用的 python 指向 2.7。这样是不是可以?
    shalk
        11
    shalk  
       Apr 27, 2017
    踩过这种坑,不过是又安装了 2.7; 只要把 yum 改成 2.6;

    推荐用 pyenv
    we3613040
        12
    we3613040  
    OP
       Apr 27, 2017
    @koolob 可以,卸载的不是我是我同事,这个坑就我填了
    we3613040
        13
    we3613040  
    OP
       Apr 27, 2017
    @Kilerd 不是,这个是需要用 python2.7 版本,只是看到那个帖子,想起踩得坑,分享一下
    we3613040
        14
    we3613040  
    OP
       Apr 27, 2017
    @LokiSharp 想起了地下城,没用过
    syahd
        15
    syahd  
       Apr 27, 2017 via Android
    我也做过这种傻事,最后我自己编译安装了个 2.7
    sagaxu
        16
    sagaxu  
       Apr 27, 2017
    下回再来一个卸载 libc 的,然后再来卸载内核的
    julyclyde
        17
    julyclyde  
       Apr 27, 2017
    因为你没深究所以才犯这个错误的
    结果你却执迷于用没深究的方法去修复
    twl007
        18
    twl007  
       Apr 27, 2017 via iPhone
    最好不要随便去动这类系统基础的依赖 你现在只是发现了 yum 需要而已 其他还不知道有多少软件依赖这个呢.……
    MBTimY
        19
    MBTimY  
       Apr 27, 2017 via iPhone
    这个问题,我之前的解决方案是,装一个新的 python 2.7 或者更高版本,到期后旧版本的,不删除保留着,这样可以在 yum 那个配置文件那里继续让 yum 使用老版本的 python.
    Rice
        20
    Rice  
       Apr 27, 2017
    作死啊,我看过一 Linux 教程里面就说不要随便卸载 python
    killerv
        21
    killerv  
       Apr 27, 2017
    升级 Python,保留旧版本啊
    killerv
        22
    killerv  
       Apr 27, 2017
    @LokiSharp 哈哈,我想起个段子:下载 winrar 的时候发现下载的文件是个 winrar.rar
    we3613040
        23
    we3613040  
    OP
       Apr 27, 2017
    @twl007 恩,是呀
    geeklian
        24
    geeklian  
       Apr 27, 2017 via iPad
    任何尝试替换系统默认 python 的行为都是在给自己挖坑。
    we3613040
        25
    we3613040  
    OP
       Apr 27, 2017
    @geeklian 是呀,这个确实没想到,所以我把这个方法写出来,分享给遇到这个问题的人
    mentalkiller
        26
    mentalkiller  
       Sep 13, 2017
    感谢指点
    About     Help     Advertise     Blog     API     FAQ     Solana     1177 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 69ms UTC 23:45 PVG 07:45 LAX 16:45 JFK 19:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86