Linux系统自带Python2&yum的卸载及重装

简介: 介绍Python2和yum卸载及重新安装的全过程,虽然误删除Python及yum不会导致系统挂掉这么严重的问题,但也会增加很多不必要的麻烦,尤其是时间的浪费。所以在执行一些命令,尤其是一些删除、卸载命令时,一定要慎重!

写在前面


事情的起因是我昨天在测试Linux安装Python3的shell脚本时,需要卸载Python3重新安装一遍。但是通过如下命令卸载python3时,少写了个3,不小心将系统自带的python2也给删除了。

rpm -qa|grep python3|xargs rpm -ev--allmatches--nodeps# 卸载python3,带2卸载python2,啥都不带会卸载所有pythonwhereis python3 |xargs rm-frv# 清除Python3残余文件

后来重新下载了Python2安装后,Python2能用了,但是yum命令又出问题了:

网上搜索了一下,出现这种现象答案几乎都是说是因为升级了python以后,yum与高版本python不兼容导致,解决方法也几乎千篇一律,将/usr/bin/yum文件的首行由#!/usr/bin/python改为#!/usr/bin/python2.7(试了,然并卵,底下评论也都这么说),我的解决方法就是将python2和yum全部卸载,然后重新安装一遍,简单粗暴,好在最后全都正常了,万事大吉!

一、卸载Python2及yum

1.卸载Python2

rpm -qa|grep python|xargs rpm -ev--allmatches--nodeps# 卸载Pythonwhereis python |xargs rm-frv# 删除python所有残余文件whereis python  # 查看是否存在pythonpython # 进入python解释器环境,若提示“-bash: python: command not found”则说明卸载成功

2.卸载yum

rpm -qa|grep yum|xargs rpm -ev--allmatches--nodeps# 强制卸载yumwhereis yum |xargs rm-frv# 删除yum残余文件

二、安装python2.7及yum

1.查看系统版本

cat /etc/redhat-release  # 我的系统版本是:CentOS Linux release 7.9.2009 (Core)

2.下载版本对应的依赖包

① 创建目录

mkdir /usr/local/src/python-yum
cd /usr/local/src/python-yum

② 下载依赖包

下载地址:

https://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/ 网易云

https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/ 阿里云

【python依赖包】

可能不需要这么多,反正多一个总比少一个好

libxml2-python-2.9.1-6.el7.5.x86_64.rpm

lvm2-python-libs-2.02.187-6.el7.x86_64.rpm

python-2.7.5-89.el7.x86_64.rpm

python-backports-1.0-8.el7.x86_64.rpm

python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm

python-chardet-2.2.1-3.el7.noarch.rpm

python-devel-2.7.5-89.el7.x86_64.rpm

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

python-ipaddress-1.0.16-2.el7.noarch.rpm

python-libs-2.7.5-89.el7.x86_64.rpm

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

python-pycurl-7.19.0-19.el7.x86_64.rpm

python-setuptools-0.9.8-7.el7.noarch.rpm

python-urlgrabber-3.10-10.el7.noarch.rpm

python-virtualenv-15.1.0-4.el7_7.noarch.rpm

rpm-python-4.11.3-45.el7.x86_64.rpm

rpm-4.11.3-45.el7.x86_64.rpm

rpm-build-4.11.3-45.el7.x86_64.rpm

rpm-build-libs-4.11.3-45.el7.x86_64.rpm

rpm-libs-4.11.3-45.el7.x86_64.rpm

rpm-sign-4.11.3-45.el7.x86_64.rpm

【yum依赖包】

yum-3.4.3-168.el7.centos.noarch.rpm

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

yum-plugin-aliases-1.1.31-54.el7_8.noarch.rpm

yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

yum-plugin-protectbase-1.1.31-54.el7_8.noarch.rpm

yum-utils-1.1.31-54.el7_8.noarch.rpm

可以先下载到本地,然后通过工具上传到Linux,也可以直接在Linux命令行使用wget工具进行下载(版本号一定要对应),例如:

# 在/usr/local/src/python-yum目录下,下载python依赖包wget https://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm
wget https://mirrors.163.com/centos/7.9.2009/os/x86_64/Packages/python-devel-2.7.5-89.el7.x86_64.rpm
......

3.安装python

这里面有一堆的依赖关系在里面,先安装哪个后安装哪个也是有讲究的,网上看了很多教程,如下图,说法不一,按照他们的操作顺序后还是会报各种依赖的错

我嫌太麻烦,剪不断、理还乱,干脆把所有的依赖都放在一起,强制安装,需要哪个你们自己检测去吧,简单粗暴一点,大不了从头再来:

cd /usr/local/src/python
rpm -ivh python-* rpm-python-*  
rpm -ivh python-* rpm-python-* --nodeps--force# 如出现安装依赖报错问题,可带上--nodeps --force参数的意思是不考虑依赖包,强制安装

安装成功后如图所示:

输入python,验证是否安装成功:

4.安装yum

cd /usr/local/src/yum
rpm -ivh yum-*

安装成功如图所示:

验证yum是否安装成功:

小结


以上就是Python2和yum卸载及重新安装的全过程,虽然误删除Python及yum不会导致系统挂掉这么严重的问题,但也会增加很多不必要的麻烦,尤其是时间的浪费。所以在执行一些命令,尤其是一些删除、卸载命令时,一定要慎重

相关文章
|
17天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品安全追溯系统的深度学习模型
使用Python实现智能食品安全追溯系统的深度学习模型
41 4
|
7天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
62 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
8天前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习的果蔬识别系统实现
果蔬识别系统,主要开发语言为Python,基于TensorFlow搭建ResNet卷积神经网络算法模型,通过对12种常见的果蔬('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜')图像数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django框架搭建Web网页端可视化操作界面,以下为项目实现介绍。
19 4
基于Python深度学习的果蔬识别系统实现
|
21天前
|
Python
Python之音乐专辑管理系统
音乐专辑管理系统是一款用于管理和维护音乐专辑信息的应用程序,支持添加、删除、修改和查询专辑详情(如专辑名、艺术家、发行日期及曲目列表)。系统运行需Python 3.x环境,硬件要求较低,适合个人及小型团队使用。
41 4
|
22天前
|
Python
Python实现摇号系统
本文介绍了如何使用Python构建一个简单的摇号系统,包括用户输入、随机抽取、结果展示和日志记录等功能。通过导入`random`、`datetime`和`logging`模块,实现了从参与者名单中随机抽取中奖者,并记录每次摇号的结果,方便后续查看和审计。完整代码示例提供了从功能实现到主程序调用的全过程。
33 2
|
25天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
74 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
24天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
130 0
|
23天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
52 8
|
23天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
145 6
|
24天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3