CENTOS手動安裝修復python ,YUM CENTOS手動安裝修復YUM

CENTOS手動安裝修復YUM


1、問題場景

centos 上的 python 版本默認比較低,不少同窗都會手動升級 python 的版本到 3.x。python

由於 yum 的代碼是依賴 python2.x 的,若是直接刪除老版本 python ,會致使 yum 不可用。centos

# 報錯核心語句 No module named yum

這個狀況必須手動修復,不少同窗由於修復失敗而重裝了系統,這樣成本會很高。api

這裏以 centos7.5 x64 爲例子,進行修復演示。dom

 

2、手動修復

2.1 下載 rpm 包

centos 官方下載網站是 http://mirror.centos.org/centos/。選擇國內鏡像網站會快一些。這裏使用的是 mirrors.ustc.edu.cn。curl

首頁就有各個方向的目錄連接。ide

進到 7.5 對應的目錄 http://mirrors.ustc.edu.cn/centos/7.5.1804/, 發現這裏是空的。不過這沒有關係,同一個大版本號下, rpm 包是兼容的。因此可使用 7.6 目錄下的包。post

http://mirrors.ustc.edu.cn/centos/7.6.1810/os/x86_64/Packages/ ,這裏就是咱們所需的 python 和 yum 包 所在地。網站

下載以下包ui

# python 部分 python-backports-1.0-8.el7.x86_64.rpm python-pycurl-7.19.0-19.el7.x86_64.rpm python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm python-ipaddress-1.0.16-2.el7.noarch.rpm python-setuptools-0.9.8-7.el7.noarch.rpm python-urlgrabber-3.10-9.el7.noarch.rpm python-2.7.5-76.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm python-libs-2.7.5-76.el7.x86_64.rpm python-devel-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm rpm-python-4.11.3-35.el7.x86_64.rpm # yum 部分 yum-3.4.3-161.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm

 

2.2 安裝 rpm 包

先安裝 python。

運行 rpm 命令。這裏必定要加 --replacefiles --replacepkgs 參數, 由於須要覆蓋一些老文件老包,不加的話會提示文件衝突或者包已經安裝過了。

sudo rpm --replacefiles --replacepkgs -ivh python-backports-1.0-8.el7.x86_64.rpm python-pycurl-7.19.0-19.el7.x86_64.rpm python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm python-ipaddress-1.0.16-2.el7.noarch.rpm python-setuptools-0.9.8-7.el7.noarch.rpm python-urlgrabber-3.10-9.el7.noarch.rpm python-2.7.5-76.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm python-libs-2.7.5-76.el7.x86_64.rpm python-devel-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm python-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm rpm-python-4.11.3-35.el7.x86_64.rpm

輸出爲

warning: package python-2.7.5-76.el7.x86_64 was already added, skipping python-2.7.5-76.el7.x86_64 warning: package rpm-4.11.3-35.el7.x86_64 was already added, skipping rpm-4.11.3-35.el7.x86_64 Preparing... ################################# [100%] Updating / installing... 1:python-libs-2.7.5-76.el7 ################################# [ 8%] 2:python-2.7.5-76.el7 ################################# [ 17%] 3:python-backports-1.0-8.el7 ################################# [ 25%] 4:python-pycurl-7.19.0-19.el7 ################################# [ 33%] 5:python-ipaddress-1.0.16-2.el7 ################################# [ 42%] 6:python-backports-ssl_match_hostna################################# [ 50%] 7:rpm-4.11.3-35.el7 ################################# [ 58%] 8:rpm-python-4.11.3-35.el7 ################################# [ 67%] 9:python-setuptools-0.9.8-7.el7 ################################# [ 75%] 10:python-urlgrabber-3.10-9.el7 ################################# [ 83%] 11:python-iniparse-0.4-9.el7 ################################# [ 92%] 12:python-devel-2.7.5-76.el7 ################################# [100%]


再安裝 yum,一樣也要加 --replacefiles --replacepkgs

sudo rpm --replacefiles --replacepkgs -ivh yum-3.4.3-161.el7.centos.noarch.rpm rpm-python-4.11.3-35.el7.x86_64.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm rpm-4.11.3-35.el7.x86_64.rpm


輸出爲

Preparing... ################################# [100%] Updating / installing... 1:rpm-4.11.3-35.el7 ################################# [ 20%] 2:rpm-python-4.11.3-35.el7 ################################# [ 40%] 3:yum-metadata-parser-1.1.4-10.el7 ################################# [ 60%] 4:yum-plugin-fastestmirror-1.1.31-5################################# [ 80%] 5:yum-3.4.3-161.el7.centos ################################# [100%]


這裏必定要注意,必須出現進度條 100% 的 輸出,纔是安裝成功了。

不一樣版本的系統,須要的包可能不太同樣,當運行安裝命令時,可能會提示有一些依賴包缺失。

這種狀況下,能夠根據提示下載響應的依賴包,添加到 rpm -ivh 的列表中。

2.3 可使用了

嘗試運行下 yum。

yum --version


輸出爲

3.4.3 Installed: rpm-4.11.3-32.el7.x86_64 at 2018-06-20 10:02 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-04-11 03:54 Committed: Panu Matilainen <pmatilai@redhat.com> at 2017-11-13 Installed: rpm-4.11.3-35.el7.x86_64 at 2019-03-07 10:09 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 19:27 Committed: Pavlina Moravcova Varekova <pmoravco@redhat.com> at 2018-06-19 Installed: yum-3.4.3-161.el7.centos.noarch at 2019-03-07 10:08 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-11-05 01:54 Committed: CentOS Sources <bugs@centos.org> at 2018-10-30 Installed: yum-plugin-fastestmirror-1.1.31-50.el7.noarch at 2019-03-07 10:08 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 22:58 Committed: Michal Domonkos <mdomonko@redhat.com> at 2018-08-24

 

3、python 升級小建議

  • 最好編譯安裝 python 包到一個獨立的目錄,須要使用高版本 python 時,直接指定此版本的可執行文件路徑便可。

  • 千萬不要刪除老版本 python, yum 自己本身升級兼容可能還須要好久,當前仍是會依賴系統默認的 python。

相關文章
相關標籤/搜索