zoukankan      html  css  js  c++  java
  • CentOS7修复python拯救yum

    原文:http://blog.51cto.com/welcomeweb/2132654  

    本人正在吹着空调,喝着茶水,然后qq头像抖了两下,业务开发同学给我打了个招呼,“忙么?帮个忙可以不?” 这很明显了,要忙了呀!来活了。本着爱岗敬业的精神回复“您说”。 然后很含蓄的告诉我yum不好用了。得嘞,这活可能很简单,就是自己编译了高版本替换了系统python,然后yum使用python,由于版本高,库没有,导致没法使用。  或者特别麻烦,直接把系统的python卸了!!!!!! 这个有可能没救,这要看业务同学是否手下留情了。闲话到此!

    ++++++++++++++++++++++++++++++++++++++++++++

    一  拯救yum,简单的说 只是装了个高版本的python,然后把环境变量换了 或者 软连接了下

    1
    2
    3
    4
    5
    6
    7
    [root@test ~]# vim $(which yum)
    #!/usr/bin/python  修改为系统的python path  例如:#!/usr/bin/python2.7  
    import sys
    try:
        import yum
    except ImportError:
        print >> sys.stderr, """

    还有这个地方

    1
    2
    3
    4
    [root@test ~]# vi /usr/libexec/urlgrabber-ext-down 
    #! /usr/bin/python   修改为系统的python path  例如:#!/usr/bin/python2.7  
    #  A very simple external downloader
    #  Copyright 2011-2012 Zdenek Pavlas

    然后试试 一般就好了

    二  手抖把python删除了 或者把 yum删除了

    区别:

    这是没python了

    1
    2
    3
    4
    [root@test ~]# yum
    -bash/usr/bin/yum/usr/bin/python: bad interpreter: No such file or directory
    [root@test ~]# python -V
    -bash/usr/bin/python: No such file or directory

    这是没yum了

    1
    2
    [root@test ~]# yum
    -bash/usr/bin/yum: No such file or directory

    如果鉴定为两个都没了,恭喜你 真他娘的是个人才。 不过还好你看到本文了,继续往下看吧!

    其实我已经修复生成环境的,为了演示,这里用虚拟机做了下。好奇的小伙伴不要在生成环境尝试(最好在成人陪同下哈,另外免责下后果与本人无关)!!!

    具体过程如下:

    简述为:

     a 找python与yum的rpm包:

      

      在同样系统的服务器上使用yumdownloader 命令 将rpm包下载到另一台服务器上,然后搞到这个服务器上:

    1
     yumdownloader  python python-libs python-devel python-devel python-pycurl python-urlgrabber python-setuptools rpm-python yum-utils yum yum-metadata-parser yum-plugin-aliases yum-plugin-protectbase yum-plugin-fastestmirror python-kitchen python-chardet

      

    或者

       注意找与自己系统版本一致的源下的如下的rpm包:

       例如:centos7.2.151  源地址为: http://vault.centos.org/7.2.1511/os/x86_64/Packages/  注意替换版本就行了官方源

    • python-2.7.5-34.el7.x86_64.rpm

    • python-libs-2.7.5-34.el7.x86_64.rpm

    • python-devel-2.7.5-34.el7.x86_64.rpm

    • python-iniparse-0.4-9.el7.noarch.rpm

    • python-pycurl-7.19.0-17.el7.x86_64.rpm

    • python-urlgrabber-3.10-7.el7.noarch.rpm

    • python-setuptools-0.9.8-4.el7.noarch.rpm

    • rpm-python-4.11.3-17.el7.x86_64.rpm

    • yum-utils-1.1.31-34.el7.noarch.rpm

    • yum-3.4.3-132.el7.centos.0.1.noarch.rpm

    • yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

    • yum-plugin-aliases-1.1.31-34.el7.noarch.rpm

    • yum-plugin-protectbase-1.1.31-34.el7.noarch.rpm

    • yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm

    • python-kitchen-1.1.1-5.el7.noarch.rpm

    • python-chardet-2.2.1-1.el7_1.noarch.rpm

      将如上源 wget到本地

     b 安装下载的rpm包:

    1
    2
    [root@test ~]# rpm -Uvh --replacepkgs python*.rpm
    [root@test ~]#  rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm

     该过程如果出现依赖关系需要安装其他的rpm包,可安装提示查找安装,切勿跳过!

     c 安装完成,测试使用

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    详解过程

    1 删除系统的python 与 yum (为了演示,自残下)

    系统环境 以及安装包数量

    1.png

    尝试删除系统python,rpm直接-e删除会看到很多依赖,但是没删除成功

    2.png

    用yum删除下,这次也没成功,显示python被系统保护,这是必须的python对于系统很重要。这也说明呀一般的手抖是删除不掉centos7 的python

    3.png

    加点参数总算搞掉了:

    1
    2
    3
    4
    rpm -qa |grep python|xargs rpm -ev --allmatches --nodeps
    rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
    whereis python |xargs rm -fr
    whereis yum |xargs rm -fr

    4.png

    参照图一删除了77个rpm包。。 yum已经报销,python都没了

    5.png

    这是把yum也删了,又少了个几个包。。。

    6.png

    开始修复,还好wget能用,如果不能用,那就试试rsync  nc 等等传输rpm包,

    下图为下载了部分rpm包,安装的时候会报依赖关系,莫慌,去找 去下,然后安装,如果在报依赖关系,继续去找去下去安装,稳住。。。

    7.png

    见到这个可以送一口气了,这是python修复成功

    8.png

    然后去修yum 这是当时遇到依赖问题,已经把这些包都放到简略的步骤里了。

    9.png

    渡劫成功,少年,python和yum已经可用了

    10.png

    11.png

    另一种下载rpm包的方法,更快,但是需要一台同样环境的服务器:

    12.png

    这里是有包了,没有命令

    13.png

    这里是批量把包装了上:

    16.png

    另外错误姿势示范:有包也装不上,这是依赖关系处理不当

    14.png

    故事到此为止。

    ++++++++++++++++++++++++++++++++++++++++++

    怎么说,这个故事告诉我们: ① 新同学的岗前培训很重要(这是个实习生搞得),你好他也好。你省的麻烦,他省得担惊受怕,职业生涯受挫。

    ② 运维同学不出手则已,一出手必须解决问题。其实我在看了环境后问了句能不能重装,先把后路给铺好,也是体现咱职业技术的时候。

    最后,鸡汤一碗,早点休息,不然眼黑,手抖,指不定敲了什么命令自己也不知道。多休息也能捍卫发际线!  md 过不去的梗,发际线~<~

  • 相关阅读:
    Understanding about Baire Category Theorem
    Isometric embedding of metric space
    Convergence theorems for measurable functions
    Mindmap for "Principles of boundary element methods"
    Various formulations of Maxwell equations
    Existence and uniqueness theorems for variational problems
    Kernels and image sets for an operator and its dual
    [loj6498]农民
    [luogu3781]切树游戏
    [atAGC051B]Three Coins
  • 原文地址:https://www.cnblogs.com/dhl050/p/9229323.html
Copyright © 2011-2022 走看看