百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

gudong366 2025-06-21 20:17 6 浏览

写在前面


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

rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps  # 卸载python3,带2卸载python2,啥都不带会卸载所有python
whereis 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  # 卸载Python
whereis python |xargs rm -frv  # 删除python所有残余文件
whereis python  # 查看是否存在python
python # 进入python解释器环境,若提示“-bash: python: command not found”则说明卸载成功

2.卸载yum

rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps  # 强制卸载yum
whereis 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不会导致系统挂掉这么严重的问题,但也会增加很多不必要的麻烦,尤其是时间的浪费。所以在执行一些命令,尤其是一些删除、卸载命令时,一定要慎重

相关推荐

linux sed系列 第四篇:sed工业实战——日志处理与数据清洗

“掌握了sed的编程能力后,我们如同装备精良的工匠,终于可以踏入真实的工业战场。本篇将聚焦sed在日志分析、数据合规化、多文件批处理等场景中的应用,看它如何在海量数据中游刃有余,展现文本处理的...

Linux下sed的简单使用(linux中sed是什么意思)

1、sed简介stremeditor流编辑器,它是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed编辑器是一行一...

linux基础命令之date命令(linux中的date)

date命令主要用于显示或者设置系统时间语法格式:date参数对象使用date命令时,最好先使用date--help命令查看支持哪些参数,有些小型Linux系统下的date命令,只支持一些基本参...

Ubuntu linux 常用命令(ubuntu常用的50个命令)

使用dpkg命令来安装.deb包。sudodpkg-i~/example.deb如果在安装过程中遇到依赖问题,可以使用以下命令来修复:sudoapt-getinstall-f将flut...

Linux基础命令-sed命令(linux教程:sed命令的用法)

Sed全名streameditor流编辑器,它是一个强大的文本处理工具,它可以从文件中接受输入,也可以接受来自标准输入流的输入,它擅长取行。Sed的用途非常广泛,包括:1)文本替换2)选择性的输...

linux sed系列 第二篇:sed进阶技巧——地址定位与正则表达式

“上一篇我们掌握了sed的基础替换,如同获得了第一把钥匙。现在,让我们更进一步,学习如何精准锁定目标行,如同拥有了导航地图,让每一次操作都直击要害!”地址定位的四种维度sed的强大,很大程度上源...

火狐Firefox浏览器140发布:手动Unload标签页、优化翻译体验等

IT之家6月24日消息,Mozilla在发布版本139不到一个月后,推出了最新的开源网页浏览器Firefox140。新版本增加了手动Unload标签页的功能,优化了垂直标签页的调...

Linux 基本正则表达式及扩展正则表达式功能举例

在Linux中,正则表达式(RegularExpression)是一种强大的模式匹配工具,用于在文本中查找、匹配和处理特定模式的字符串。Linux支持两种类型的正则表达式:基本正则表达式(Basic...

linux下find命令的经典26个使用示例

简介find命令是基于unix的操作系统中常用的工具之一。顾名思义,它在目录层次结构中查找文件和目录。用户可以传递不同的参数,并根据文件的名称、扩展名、类型、大小、权限、修改时间、所有者、组等搜索文件...

linux运维中特殊符号的应用与实践

路径位置类的特殊符号(1)、波浪线(~)在linux系统的命令行中,~表示用户的家目录,超级用户为/root,普通用户为/home。假设我当前目录在usr/local下[root@xrylocal]...

开源框架log4cpp实战(开源gui框架)

1.Log4cpp使用Log4cpp中主要包含Category(种类),Appender(附加器),Layout(布局),Priorty(优先级),NDC(嵌套的诊断上下文)。Category、App...

Linux find命令详解(linux find -l)

一、命令介绍Linuxfind命令是类unix操作系统中最重要和最常用的命令行实用程序之一。find命令用于根据指定的条件搜索和定位与参数匹配的文件和目录列表。find命令提供了广泛的选项,允许用户...

Linux运维:单引号与双引号的使用(linux 单引号和双引号)

1、单引号的使用单引号可以将它中间的所有任意字符还原为字面意义,实现屏蔽Shell元字符的功能。注意不可以在两个单引号中间单独插入一个单引号,单引号必须成对出现。示例1:定义一个变量,并输出变量的...

Linux技巧:find 命令用法详细说明,看完会有收获

在Linux命令中,find是比较复杂难用的命令。使用该命令搜索文件时,常常发现自己找了一些例子能用,但稍微改一下条件,就搜不到想要的结果。下面会以一些实例来说明使用find命令的关键要点和...

Linux Shell中单引号、双引号、反引号的解释

1、单引号('')单引号所见即所得,直接显示单引号里的内容。即单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的。比如下面的例子,单引号所见即所得。2、双引号("...