记一次误删python-2.7.5-34.0.1.el7.x86_64重新安装yum软件的经历

事件起因:

今天在CentOS7上想把python3.8版本升级到3.9,最后却把python删了yum也完全删了。于是开始了出现到处查阅资料、安装yum的艰难历程。有时候大家也可能会在拿到服务器的第一时间发现python版本是2.x,想升级到python3 导致yum损坏。因此写下这篇博客呜呜呜!

最终耗时几个小时终于解决,下面是解决办法。

前言:软件包下载地址(根据自己的centos版本去找对应的Packages目录):http://vault.centos.org/7.4.1708/os/x86_64/Packages/
如果不知道自己的系统版本,命令行输入这个

cat /etc/redhat-release

也可以从中科163网易开源镜像或者阿里云镜像下载相对应的包。

解决步骤:

1.在http://vault.centos.org/7.4.1708/os/x86_64/Packages/下载20个包:
注意每一个包都要找到并下载。

python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch.rpm
python-2.7.5-58.el7.x86_64.rpm
python-ipaddress-1.0.16-2.el7.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
python-chardet-2.2.1-1.el7_1.noarch.rpm
python-libs-2.7.5-58.el7.x86_64.rpm
rpm-python-4.11.3-25.el7.x86_64.rpm
yum-plugin-protectbase-1.1.31-42.el7.noarch.rpm
yum-3.4.3-154.el7.centos.noarch.rpm
libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm
python-pycurl-7.19.0-19.el7.x86_64.rpm
yum-plugin-aliases-1.1.31-42.el7.noarch.rpm
lvm2-python-libs-2.02.171-8.el7.x86_64.rpm
yum-utils-1.1.31-42.el7.noarch.rpm
python-setuptools-0.9.8-7.el7.noarch.rpm
python-urlgrabber-3.10-8.el7.noarch.rpm
python-iniparse-0.4-9.el7.noarch.rpm
python-backports-1.0-8.el7.x86_64.rpm
python-kitchen-1.1.1-5.el7.noarch.rpm

上面20个包的下载命令为:(我的CentOS版本CentOS7,注意看你的版本来修改安装命令)

wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-2.7.5-58.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-ipaddress-1.0.16-2.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-chardet-2.2.1-1.el7_1.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-libs-2.7.5-58.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//rpm-python-4.11.3-25.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-plugin-protectbase-1.1.31-42.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-3.4.3-154.el7.centos.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-pycurl-7.19.0-19.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-plugin-aliases-1.1.31-42.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//lvm2-python-libs-2.02.171-8.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//yum-utils-1.1.31-42.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-setuptools-0.9.8-7.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-urlgrabber-3.10-8.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-iniparse-0.4-9.el7.noarch.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-backports-1.0-8.el7.x86_64.rpm
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages//python-kitchen-1.1.1-5.el7.noarch.rpm

可以将这些命令复制到你的 Linux 终端中,一条一条执行,或者将它们保存到一个 shell 脚本文件中,然后运行该脚本。为了简单点并方便的看清楚具体哪一个包是否正确被执行安装的话就一条一条执行。

2.下载完毕后执行以下命令安装:

注意,yum安装也按照顺序执行,在执行第一个rpm时, 结尾加上‘ --nodeps --force’参数强制安装。

rpm -Uvh --replacepkgs lvm2-python-libs*.rpm --nodeps --force
rpm -Uvh --replacepkgs libxml2-python*.rpm --nodeps --force
rpm -Uvh --replacepkgs python*.rpm --nodeps --force
rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm --nodeps --force

3.检查yum的版本

yum --version

安装成功!检查到yum的版本啦哈哈~

总结:

切记:有依赖关系的rpm不要轻易删除,一定要先了解清楚后再选择是否删除~还有就是用 rpm -e python-2.7.5-58.0.1.el7.x86_64 会更安全。