一.背景
先给centos8安装python,学习搭建测试自动化环境,完全不知道centos系统自带python,所以当我第一次安装python不成功之后,就搜索如何彻底删除python,最终就也删除掉了系统自带的python,导致yum命令无法使用
rm -rf /usr/bin/python*
rm -rf /usr/lib/python*
rm -rf /usr/local/lib/python*
rm -rf /usr/local/bin/python*
# 最后删除自己的python安装包
rm -rf /usr/local/Python-3.12.1/
然后我就发现yum命令使用不了了,就开始上网搜怎么办,主要还是公司服务器的测试环境,就很尴尬,看了一圈,都说没救了,只能全部删干净,再重新安装,于是我就开整!
确保完全把python删除干净
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
whereis python |xargs rm -frv
whereis python
再确保把yum删除干净
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
whereis yum |xargs rm -frv
whereis yum
二.解决方案
2.1 方案一
第一个方案是下载对应系统版本的yum包,然后安装的时候,又提示缺少很多依赖,要去一个一个找这些依赖,然后全部安装成功后,才能安装yum包,然后最坑的是,我在安装这些依赖的时候,发现它们也有一些各自的依赖,要一个一个下,然后我就放弃了!大家愿意的话可以试试
CentOS7误删自带python2或yum异常导致yum命令不可用的解决方法_[root@localhost yum]# rpm -ivh yum-3.4.3-168.el7.c-CSDN博客
2.2 方案二
这个方案我感觉很实用,是从一个centos8系统的相同版本中repotrack yum,也就是把yum的rpm包和其依赖项的rpm包下载下来,然后在上传到我们误删的系统中,再去安装所有依赖包,就可以解决这个问题,听着好像挺简单,然后就开干!
注:我的系统是centos8.0.1905,如果你也是同系统,那你太爽了,百度网盘链接给你,跳转到第五步就好了。
链接:https://pan.baidu.com/s/1cjAIH-WOEgG1TP3nIFNzwQ 提取码:l2lu
2.21 第一步:通过VMware安装Centos系统
首先要知道自己的系统是什么版本的
cat /etc/redhat-release
确定好版本之后就开始安装系统了,具体过程可自行搜索,或查看我之前的搭建记录
通过VMware安装Centos 8.0.1905(附下载地址)-CSDN博客
2.22 第二步:连接网络,连接远程连接工具
因为我们需要把所有的rpm包上传到系统中,那就需要远程连接工具,能够快速实现这一操作,具体过程可自行搜索,或查看我之前的搭建记录
CentOS 8.0.1905 桥接模式连接网络 以及连接Finalshell-CSDN博客
2.23 第三步:更改yum源,使其正常工作
因为centos8已经被舍弃了,不会再维护了,所以yum源使用不了,也就没办法repotrack yum
使用不了会提示 “同步仓库 ‘xxxxxx‘ 缓存失败,忽略这个 repo”,若出现这个问题嘛,就可以自行搜索解决办法,或....
CentOS8 yum -y install wget提示同步仓库 ‘AppStream‘ 缓存失败,忽略这个 repo。同步仓库 ‘BaseOS‘ 缓存失败,忽略这个 repo。-CSDN博客
但其他的系统也许可以成功使用yum源,就可以跳过这一步啦
2.24 第四步:使用 repotrack 下载所有包
# 创建一个目录,用来存放这些rpm包
mkdir /opt/yum_rpm
# 进入该目录
cd /opt/yum_rpm
# 下载repotrack命令的依赖包
yum install yum-utils
# 完成之后,就可以下载依赖包了
repotrack yum
还不少呢,192个依赖包,整个文件100MB多,接下来执行:
# 返回上一级目录
cd ..
# 将yum_rpm目录打包并压缩
sudo tar -czvf yum_rpm.tar.gz yum_rpm
2.25 第五步:安装依赖包
把这个压缩包从finalshell中下载出来,再上传到我们之前的被误删python的系统中,进入压缩包的目录中,进入解压缩
sudo tar -zvxf yum_rpm.tar.gz
然后进入该目录
cd ./yum_rpm
安装依赖包啦
# 强制安装所有依赖包
rpm -Uvh --force --nodeps *.rpm
虽然有脚本执行失败啦,但是yum命令已经可以正常使用啦。让我们来试试
whereis yum
whereis python
yum
至此就已经完全解决了误删python导致yum不能用的问题了,python也回来了,yum命令也可以正常使用了,下次想要卸载centos系统的软件,还真的好好想想,会不会出什么问题,像我这种小白,被这个问题困了整整两天,太绝望了,致敬那些找到解决方案的大佬!
本文参考:
CentOS7误删自带python2或yum异常导致yum命令不可用的解决方法_[root@localhost yum]# rpm -ivh yum-3.4.3-168.el7.c-CSDN博客
https://www.cnblogs.com/Denny_Yang/p/17599749.html
CentOS 7/8 误删 python3 导致 yum 不可用解决方案_yum安装包报错python删除-CSDN博客
悄咪咪吐槽(这个大佬最后让执行yum update验证yum是否安装成功,差点被坑,因为我是公司服务器,这个命令会更新系统内核,相当于是升级版本,还好环境没出啥问题)