CentOS7误删自带python2或yum异常导致yum命令不可用的解决方法

news2024/10/6 2:25:13

yum命令不可用的解决方法

  • 异常场景1
    • 原因
    • 验证
    • 解决方案
    • 让Python2与Python3共存
  • 异常场景2
    • 原因
    • 解决方案
    • 卸载、删除残留文件
    • 下载系统版本对应的yum包

异常场景1

在执行yum命令时,系统无法找到 Python 解释器,因此无法运行 yum 命令,具体异常如下:

 yum update -y
 
-bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 没有那个文件或目录

原因

这种情况通常出现在升级或安装Python3版本之后,导致python2失效了,或者说python2被卸载了,但是系统中某些组件依赖于旧版本的 Python

检查/usr/bin/python是否存在,如果不存在,则需要安装Python解释器。否则就是存在,但是不是正确的版本,请将其链接到正确的 Python解释器即可

验证

查看/usr/bin/yum文件内容

#!/usr/bin/python
import sys
try:
    import yum
except ImportError:

发现yum服务使用的默认python版本是python2。接着使用命令查看,发现已经没有python文件,那yum文件中指定的/usr/bin/python自然就无效了

[root@administrator .virtualenvs]# ls /usr/bin/python*
/usr/bin/python3

解决方案

注意:由于yum服务默认使用的python2,不能改成python3,以防出现服务依然不可用情况,所以只能安装一个python2

wget https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz

cd Python-2.7.7

./configure

make && make install

让Python2与Python3共存

Python2安装好后,查看/usr/bin/目录下是否有python与pip(应该是有,事后Blog记录),没有则手动建立软链接

[root@administrator ~]# ll /usr/bin/python*
lrwxrwxrwx 1 root root    7 37 15:07 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 37 15:07 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7144 628 2022 /usr/bin/python2.7
lrwxrwxrwx 1 root root   30 37 10:32 /usr/bin/python3 -> /usr/local/python3/bin/python3
[root@administrator ~]# ll /usr/bin/pip*
-rwxr-xr-x 1 root root 221 37 16:10 /usr/bin/pip
-rwxr-xr-x 1 root root 221 37 16:10 /usr/bin/pip2
-rwxr-xr-x 1 root root 221 37 16:10 /usr/bin/pip2.7
-rwxr-xr-x 1 root root 237 37 10:31 /usr/bin/pip3

以建立Python3和pip3的软链接为例:

ln -s /usr/local/python2/bin/python2 /usr/bin/python3

ln -s /usr/local/python2/bin/pip /usr/bin/pip3

添加环境变量配置vim /etc/profile,然后使配置生效:source /etc/profile

export PYTHON_HOME=/usr/local/python3/bin

export PATH=$PATH:$PYTHON_HOME/bin

检查Python3及pip3是否正常

[root@master ~]# python3 -V
Python 3.9.11

[root@master ~]# pip3 -V
pip 23.0.1 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)

最后验证 Python2与Python3共存

[root@administrator ~]# python
Python 2.7.5 (default, Jun 28 2022, 15:30:04) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

[root@administrator ~]# python3
Python 3.9.11 (main, Mar  7 2023, 10:30:01) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[root@administrator ~]# pip -V
pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 2.7)

[root@administrator ~]# pip3 -V
pip 23.0.1 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)

异常场景2

执行yum命令出现如下异常提示

[root@administrator ~]# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.6.6 (r266:84292, Mar  7 2023, 14:15:28) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

原因

出现这个异常,原因不明,猜测:

1.缺少python2异常

 2.yum软件异常

解决方案

先卸载、删除yum残留文件后,从阿里镜像仓库下载Centos7对应系统版本的yum包,然后进行安装

卸载、删除残留文件

强制删除python已安装程序及其关联

rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps

删除残余python文件

whereis python |xargs rm -frv

验证删除,返回为无结果

whereis python

删除现有yum

rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps

删除残余yum文件

whereis yum |xargs rm -frv

下载系统版本对应的yum包

查看系统信息

[root@administrator ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:        7.9.2009
Codename:       Core

下载的包的版本应与系统版本号对应的一致

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

在这里插入图片描述
搜索关键字:yum,找到yum-3.4.3-168.el7.centos.noarch.rpm
在这里插入图片描述
下载

wget https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm

执行安装yum,提示缺少相关依赖

[root@administrator ~]# rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm
error: Failed dependencies:
        /usr/bin/python is needed by yum-3.4.3-168.el7.centos.noarch
        python >= 2.4 is needed by yum-3.4.3-168.el7.centos.noarch
        python(abi) = 2.7 is needed by yum-3.4.3-168.el7.centos.noarch
        python-iniparse is needed by yum-3.4.3-168.el7.centos.noarch
        python-sqlite is needed by yum-3.4.3-168.el7.centos.noarch
        python-urlgrabber >= 3.10-8 is needed by yum-3.4.3-168.el7.centos.noarch
        rpm-python is needed by yum-3.4.3-168.el7.centos.noarch
        yum-metadata-parser >= 1.1.0 is needed by yum-3.4.3-168.el7.centos.noarch
        yum-plugin-fastestmirror is needed by yum-3.4.3-168.el7.centos.noarch

根据提示信息,将第一个依赖关键词python 复制到镜像网站查询获取下载地址
在这里插入图片描述
下载依赖包

wget https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm

执行安装,同时发现又提示依赖

[root@administrator ~]# rpm -ivh python-2.7.5-89.el7.x86_64.rpm 
error: Failed dependencies:
        libpython2.7.so.1.0()(64bit) is needed by python-2.7.5-89.el7.x86_64
        python-libs(x86-64) = 2.7.5-89.el7 is needed by python-2.7.5-89.el7.x86_64

此时将提示缺少的依赖复制到镜像网站查询并下载,注意版本
在这里插入图片描述
安装依赖

rpm -ivh python-libs-2.7.5-89.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:python-libs-2.7.5-89.el7         ################################# [100%]

以此类推,一步一步安装所需要的依赖。

当依赖的包无法安装时,暂时不管,先下载下来。

当所有依赖都下载后,能安装的都安装了,最后一次性安装

使用–nodeps --force参数不考虑依赖包,强制安装

[root@administrator ~]# rpm -ivh *.rpm --nodeps --force
Preparing...                          ################################# [100%]
Updating / installing...
   1:rpm-4.11.3-45.el7                ################################# [ 25%]
   2:rpm-python-4.11.3-45.el7         ################################# [ 50%]
   3:yum-plugin-fastestmirror-1.1.31-5################################# [ 75%]
   4:yum-3.4.3-168.el7.centos         ################################# [100%]

完成后,怀着忐忑的请求执行yum命令,特么的成功了!

root@administrator ~]# yum
Configuration file /etc/yum/pluginconf.d/product-id.conf not found
Unable to find configuration file for plugin product-id
Configuration file /etc/yum/pluginconf.d/search-disabled-repos.conf not found
Unable to find configuration file for plugin search-disabled-repos
Configuration file /etc/yum/pluginconf.d/subscription-manager.conf not found
Unable to find configuration file for plugin subscription-manager
Loaded plugins: fastestmirror
You need to give some command
Usage: yum [options] COMMAND

List of Commands:

check          Check for problems in the rpmdb
check-update   Check for available package updates
clean          Remove cached data
deplist        List a package's dependencies
distribution-synchronization Synchronize installed packages to the latest available versions
downgrade      downgrade a package
erase          Remove a package or packages from your system
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         Display, or use, the groups information
help           Display a helpful usage message
history        Display, or use, the transaction history
info           Display details about a package or group of packages
install        Install a package or packages on your system
list           List a package or groups of packages
load-transaction load a saved transaction from filename

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/442380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解语义分割deeplabv3+模型的工业应用流程

来源:投稿 作者:某一个名字 编辑:学姐 导语 在工业视觉应用中,目标检测算法常用于特征的粗定位,而语义分割则在特征的精定位方面有着突出的表现。使用较多的语义分割模型主要有FCN、deeplab系列、unet等,根…

ASEMI代理ADI亚德诺AD8210YRZ-REEL7车规级芯片

编辑-Z AD8210YRZ-REEL7芯片参数: 型号:AD8210YRZ-REEL7 偏移电压(RTI):1.0mV 超温(RTI):1.8 mV 差分输入阻抗:2 kΩ 共模输入阻抗:5 MΩ 共模输入电压…

数据离奇丢失案件的侦破与思考

01 离奇的数据丢失案件 最近生产环境出了一起数据离奇丢失的案件,调查过程很曲折,几度进入死胡同。下面跟大家分享整个事件的来龙去脉。 1.1 数据丢失案件 8月初,用户批量导入了一批(300)委托人数据,导入…

完美解决丨SyntaxError: invalid syntax

样例 1.1. 不同编辑器 VSCode:点击查看PyCharm:点击查看 1.2. 不同版本 1.2.1. python2 与 python3 的差异 Python2 的 print 语句如下: python print Hello, World! Python3 的 print 语句如下: python print(Hello, World!) P…

超实用的 Linux 高级命令,程序员一定要懂

前言 在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭。 像一些高级点的命令,比如说 Xargs 命令、管…

前端登陆表单_内容非空验证_rules属性与validate方法

更多校验规则查看&#xff1a;ElementUI官网-form-attributes 表单内容 <!--3、通过rules属性传入约定的验证规则v-bind:model"dataForm"绑定data中的dataForm数据v-bind:rules"rules"绑定data中的rules属性&#xff0c;里面定义了要校验的属性及规则re…

网络安全之DVWA通关教程

网络安全之DVWA通关教程 一、DVWA简介二、DVWA安装2.1 安装PHPStudy2.2 安装DVWA 三、DVWA使用3.1 Brute Force&#xff08;暴力破解&#xff09;3.1.1 Low级别3.1.2 Medium级别3.1.3 High级别 3.2 Command Injection&#xff08;命令注入&#xff09;3.2.1 Low级别3.2.2 Middl…

三极管基本知识

1、三极管是常用的半导体器件&#xff0c;也称为双极型品体管、品体三极管&#xff0c;由P/N结组成&#xff0c;它分为NPN(简称P三极管)和PNP&#xff08;简称N三极管&#xff09;&#xff0c;P三极管用多一点。常用的有插件类和贴片类两大封装。具体封装类型有SOT-23-3,TO-92,…

QS排名十年对比:美国大学最稳,中国大学进步最快

QS世界大学排名发布距今已有20年历史&#xff0c;迄今为止&#xff0c;全球已有超过90个国家和地区共1500多所大学进入QS世界排名。QS排名评估中所使用的5项评估标准基本保持不变。 QS使用5个关键指标来进行排名&#xff0c;包括学术声誉、雇主声誉、篇均论文引用、H指数和国际…

【Node.JS】初入前端,学习node.js基本操作

文章目录 一、Node.js 创建服务端应用二、npm 使用介绍三、Node.js 回调函数四、Node.js 事件驱动程序五、Node.js 事件监听器六、特殊的error事件七、Node.js Buffer&#xff08;缓冲区&#xff09;八、输入输出流 Stream九、Node.js 模块系统十、 Node.js 路由十一、GET/POST…

Node 内置模块 【http模块】

文章目录 &#x1f31f;前言&#x1f31f;http模块&#x1f31f; 1.引入http模块&#x1f31f; 2.创建服务&#x1f31f; 3.添加头信息&#x1f31f; 4.搭建一个简单的服务器&#xff1a;&#x1f31f; 5.Request对象&#x1f31f; 6.Response对象&#x1f31f; 7.练习&#xf…

Mac 安装Java反编译工具JD-GUI

一、下载JD-GUI软件 1.首先到Github下载JD-GUI软件&#xff1a; github java-decompiler/jd-gui Public 选择jd-gui-osx-1.6.6.tar. 2.解压打开软件&#xff0c;但是提示错误&#xff1a; 3.确保本机已安装JDK. 4.如果确定已经安装了JDK海报这个这个错误&#xff0c;选中JD…

Ubuntu由于没有公钥,无法验证下列签名: NO_PUBKEY 79CDFD222CD3495A

执行update时&#xff0c;打印几行错误信息&#xff1a; sudo apt-get update命中:3 https://deb.termius.com squeeze InRelease 错误:3 https://deb.termius.com squeeze InRelease 由于没有公钥&#xff0c;无法验证下列签名&#xff1a; NO_PUBKEY 79CDFD222CD3495A W: 校…

海量数据的交互式分析工具Dremel

海量数据的交互式分析工具Dremel 产生背景数据模型两方面的技术支撑面向记录和面向列的存储嵌套模型的形式化定义 嵌套式的列存储数据的无损表示重复深度的定义定义深度的定义 高效的数据编码&#xff08;了解&#xff09;数据重组 查询语言与执行&#xff08;了解&#xff09;…

易点易动设备管理系统帮助水泥厂实现智能设备巡检

着工业4.0的不断发展&#xff0c;智能制造成为企业追求的目标。水泥厂作为基础建设的重要产业&#xff0c;其生产过程中设备的巡检维护显得尤为重要。本文介绍了易点易动设备管理系统如何帮助水泥厂实现智能设备巡检&#xff0c;提高设备管理效率&#xff0c;降低维修成本&…

卫浴工厂如何通过电子作业指导书系统实现信息化管理?

电子作业指导书系统可以帮助卫浴工厂实现信息化管理和智能化生产。电子作业指导书系统可以与其他管理系统和设备进行数据共享和信息交换&#xff0c;从而实现生产过程的智能化和自动化。 电子作业指导书系统是一种指导工人操作的电子化工具&#xff0c;可以将工艺流程、操作规范…

你的企业是不是需要一个wiki维基网页呢?

随着科技的不断发展和企业的不断壮大&#xff0c;企业内部的知识管理变得愈发重要。而wiki维基网页正是一种非常有效的知识管理工具&#xff0c;可以帮助企业更好地管理、分享和利用内部知识。 企业需要一个wiki维基网页的原因有哪些&#xff1f; 提高信息共享效率 在传统的…

WEB 工程路径专题--base 标签的使用和建议示意图

目录 WEB 工程路径专题 工程路径解决方案 解决方案&#xff1a;相对路径 2. 相对路径带来的问题举例 > 示意图 解决方案&#xff1a;base 标签 base 基本介绍 base 应用实例 a.html b.html Servlet03.java 练习 login.HTML user.html WEB 工程路径注意事项和细…

Storm proxies动态代理IP怎么挑选海外代理IP?

在选择海外代理IP时&#xff0c;需要考虑以下几个因素&#xff1a; 代理IP的稳定性和速度&#xff1a;代理IP的稳定性和速度是影响代理效果的重要因素。需要选择一个稳定、速度较快的代理IP&#xff0c;以确保能够快速、稳定地访问目标网站。代理IP的位置和数量&#xff1a;需要…

Node 内置模块 【fs模块】

文章目录 &#x1f31f;前言&#x1f31f;fs模块&#x1f31f; 使用fs模块&#x1f31f; 异步编程和同步编程&#x1f31f; 异步编程&#x1f31f; 同步编程 &#x1f31f;常用操作&#x1f31f; 文件操作&#x1f31f; readFile异步读取文件&#x1f31f; readFileSync同步读取…