• 请不要在回答技术问题时复制粘贴 AI 生成的内容
we3613040
V2EX  ›  程序员

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

  •  
  •   we3613040 · Apr 27, 2017 · 9541 views
    This topic created in 3478 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
    LokiSharp
    Apr 27, 2017
    1
    yum install epel-release -y
    LokiSharp
    LokiSharp
    Apr 27, 2017❤️1
    2
    yum install dnf

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

    推荐用 pyenv
    we3613040
    we3613040
    OP
    Apr 27, 2017
    12
    @koolob 可以,卸载的不是我是我同事,这个坑就我填了
    we3613040
    we3613040
    OP
    Apr 27, 2017
    13
    @Kilerd 不是,这个是需要用 python2.7 版本,只是看到那个帖子,想起踩得坑,分享一下
    we3613040
    we3613040
    OP
    Apr 27, 2017
    14
    @LokiSharp 想起了地下城,没用过
    syahd
    syahd
    Apr 27, 2017 via Android
    15
    我也做过这种傻事,最后我自己编译安装了个 2.7
    sagaxu
    sagaxu
    Apr 27, 2017
    16
    下回再来一个卸载 libc 的,然后再来卸载内核的
    julyclyde
    julyclyde
    Apr 27, 2017
    17
    因为你没深究所以才犯这个错误的
    结果你却执迷于用没深究的方法去修复
    twl007
    twl007
    Apr 27, 2017 via iPhone
    18
    最好不要随便去动这类系统基础的依赖 你现在只是发现了 yum 需要而已 其他还不知道有多少软件依赖这个呢.……
    MBTimY
    MBTimY
    Apr 27, 2017 via iPhone
    19
    这个问题,我之前的解决方案是,装一个新的 python 2.7 或者更高版本,到期后旧版本的,不删除保留着,这样可以在 yum 那个配置文件那里继续让 yum 使用老版本的 python.
    Rice
    Rice
    Apr 27, 2017
    20
    作死啊,我看过一 Linux 教程里面就说不要随便卸载 python
    killerv
    killerv
    Apr 27, 2017
    21
    升级 Python,保留旧版本啊
    killerv
    killerv
    Apr 27, 2017
    22
    @LokiSharp 哈哈,我想起个段子:下载 winrar 的时候发现下载的文件是个 winrar.rar
    we3613040
    we3613040
    OP
    Apr 27, 2017
    23
    @twl007 恩,是呀
    geeklian
    geeklian
    Apr 27, 2017 via iPad
    24
    任何尝试替换系统默认 python 的行为都是在给自己挖坑。
    we3613040
    we3613040
    OP
    Apr 27, 2017
    25
    @geeklian 是呀,这个确实没想到,所以我把这个方法写出来,分享给遇到这个问题的人
    mentalkiller
    mentalkiller
    Sep 13, 2017
    26
    感谢指点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1399 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
    ♥ Do have faith in what you're doing.