CentOS7修復python拯救yum

   本人正在吹著空調,喝著茶水,然後qq頭像抖了兩下,業務開發同學給我打了個招呼,「忙么?幫個忙可以不?」 這很明顯了,要忙了呀!來活了。本著愛崗敬業的精神回復「您說」。 然後很含蓄的告訴我yum不好用了。得嘞,這活可能很簡單,就是自己編譯了高版本替換了系統python,然後yum使用python,由於版本高,庫沒有,導致沒法使用。  或者特別麻煩,直接把系統的python卸了!!!!!! 這個有可能沒救,這要看業務同學是否手下留情了。閑話到此!

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

一  拯救yum,簡單的說 只是裝了個高版本的python,然後把環境變數換了 或者 軟連接了下

[root@test ~]# vim $(which yum)  #!/usr/bin/python  修改為系統的python path  例如:#!/usr/bin/python2.7    import sys  try:      import yum  except ImportError:      print >> sys.stderr, """

還有這個地方

[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了

[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了

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

如果鑒定為兩個都沒了,恭喜你 真他娘的是個人才。 不過還好你看到本文了,繼續往下看吧!

其實我已經修復生成環境的,為了演示,這裡用虛擬機做了下。好奇的小夥伴不要在生成環境嘗試(最好在成人陪同下哈,另外免責下後果與本人無關)!!!

具體過程如下:

簡述為:

 a 找python與yum的rpm包:

  在同樣系統的伺服器上使用yumdownloader 命令 將rpm包下載到另一台伺服器上,然後搞到這個伺服器上:

 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包:

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

 該過程如果出現依賴關係需要安裝其他的rpm包,可安裝提示查找安裝,切勿跳過!

 c 安裝完成,測試使用

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

詳解過程

1 刪除系統的python 與 yum (為了演示,自殘下)

系統環境 以及安裝包數量

嘗試刪除系統python,rpm直接-e刪除會看到很多依賴,但是沒刪除成功

用yum刪除下,這次也沒成功,顯示python被系統保護,這是必須的python對於系統很重要。這也說明呀一般的手抖是刪除不掉centos7 的python

加點參數總算搞掉了:

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

參照圖一刪除了77個rpm包。。 yum已經報銷,python都沒了

這是把yum也刪了,又少了個幾個包。。。

開始修復,還好wget能用,如果不能用,那就試試rsync  nc 等等傳輸rpm包,

下圖為下載了部分rpm包,安裝的時候會報依賴關係,莫慌,去找 去下,然後安裝,如果在報依賴關係,繼續去找去下去安裝,穩住。。。

見到這個可以送一口氣了,這是python修復成功

然後去修yum 這是當時遇到依賴問題,已經把這些包都放到簡略的步驟里了。

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

另一種下載rpm包的方法,更快,但是需要一台同樣環境的伺服器:

這裡是有包了,沒有命令

這裡是批量把包裝了上:

另外錯誤姿勢示範:有包也裝不上,這是依賴關係處理不當

故事到此為止。

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

怎麼說,這個故事告訴我們: ① 新同學的崗前培訓很重要(這是個實習生搞得),你好他也好。你省的麻煩,他省得擔驚受怕,職業生涯受挫。

② 運維同學不出手則已,一出手必須解決問題。其實我在看了環境後問了句能不能重裝,先把後路給鋪好,也是體現咱職業技術的時候。

最後,雞湯一碗,早點休息,不然眼黑,手抖,指不定敲了什麼命令自己也不知道。多休息也能捍衛髮際線!  md 過不去的梗,髮際線~<~