CentOS7修复python拯救yum

本人正在吹着空调,喝着茶水,然后qq头像抖了两下,业务开发同学给我打了个招呼,“忙么?帮个忙可以不?” 这很明显了,要忙了呀!来活了。本着爱岗敬业的精神回复“您说”。 然后很含蓄的告诉我yum不好用了。得嘞,这活可能很简单,就是自己编译了高版本替换了系统python,然后yum使用python,由于版本高,库没有,导致没法使用。  或者特别麻烦,直接把系统的python卸了!!!!!! 这个有可能没救,这要看业务同学是否手下留情了。闲话到此!

++++++++++++++++++++++++++++++++++++++++++++

一  拯救yum,简单的说 只是装了个高版本的python,然后把环境变量换了 或者 软连接了下

[[email protected] ~]# vim $(which yum)
#!/usr/bin/python  修改为系统的python path  例如:#!/usr/bin/python2.7  
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\

还有这个地方

[[email protected] ~]# vi /usr/libexec/urlgrabber-ext-down 
#! /usr/bin/python   修改为系统的python path  例如:#!/usr/bin/python2.7  
#  A very simple external downloader
#  Copyright 2011-2012 Zdenek Pavlas

然后试试 一般就好了

二  手抖把python删除了 或者把 yum删除了

区别:

这是没python了

[[email protected] ~]# yum
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
[[email protected] ~]# python -V
-bash: /usr/bin/python: No such file or directory

这是没yum了

[[email protected] ~]# yum
-bash: /usr/bin/yum: No such file or directory

如果鉴定为两个都没了,恭喜你 真他娘的是个人才。 不过还好你看到本文了,继续往下看吧!

其实我已经修复生成环境的,为了演示,这里用虚拟机做了下。好奇的小伙伴不要在生成环境尝试(最好在成人陪同下哈,另外免责下后果与本人无关)!!!

具体过程如下:

简述为:

a 找python与yum的rpm包:

在同样系统的服务器上使用yumdownloader 命令 将rpm包下载到另一台服务器上,然后搞到这个服务器上:

 yumdownloader  python python-libs python-devel python-devel python-pycurl python-urlgrabber python-setuptools rpm-python yum-utils yum yum-metadata-parser yum-plugin-aliases yum-plugin-protectbase yum-plugin-fastestmirror python-kitchen python-chardet

或者

注意找与自己系统版本一致的源下的如下的rpm包:

例如:centos7.2.151  源地址为: http://vault.centos.org/7.2.1511/os/x86_64/Packages/  注意替换版本就行了官方源

  • python-2.7.5-34.el7.x86_64.rpm
  • python-libs-2.7.5-34.el7.x86_64.rpm
  • python-devel-2.7.5-34.el7.x86_64.rpm
  • python-iniparse-0.4-9.el7.noarch.rpm
  • python-pycurl-7.19.0-17.el7.x86_64.rpm
  • python-urlgrabber-3.10-7.el7.noarch.rpm
  • python-setuptools-0.9.8-4.el7.noarch.rpm
  • rpm-python-4.11.3-17.el7.x86_64.rpm
  • yum-utils-1.1.31-34.el7.noarch.rpm
  • yum-3.4.3-132.el7.centos.0.1.noarch.rpm
  • yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
  • yum-plugin-aliases-1.1.31-34.el7.noarch.rpm
  • yum-plugin-protectbase-1.1.31-34.el7.noarch.rpm
  • yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm
  • python-kitchen-1.1.1-5.el7.noarch.rpm
  • python-chardet-2.2.1-1.el7_1.noarch.rpm

将如上源 wget到本地

b 安装下载的rpm包:

[[email protected] ~]# rpm -Uvh --replacepkgs python*.rpm
[[email protected] ~]#  rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm

该过程如果出现依赖关系需要安装其他的rpm包,可安装提示查找安装,切勿跳过!

c 安装完成,测试使用

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

详解过程

1 删除系统的python 与 yum (为了演示,自残下)

系统环境 以及安装包数量

尝试删除系统python,rpm直接-e删除会看到很多依赖,但是没删除成功

用yum删除下,这次也没成功,显示python被系统保护,这是必须的python对于系统很重要。这也说明呀一般的手抖是删除不掉centos7 的python

加点参数总算搞掉了:

rpm -qa |grep python|xargs rpm -ev --allmatches --nodeps
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
whereis python |xargs rm -fr
whereis yum |xargs rm -fr

参照图一删除了77个rpm包。。 yum已经报销,python都没了

这是把yum也删了,又少了个几个包。。。

开始修复,还好wget能用,如果不能用,那就试试rsync  nc 等等传输rpm包,

下图为下载了部分rpm包,安装的时候会报依赖关系,莫慌,去找 去下,然后安装,如果在报依赖关系,继续去找去下去安装,稳住。。。

见到这个可以送一口气了,这是python修复成功

然后去修yum 这是当时遇到依赖问题,已经把这些包都放到简略的步骤里了。

渡劫成功,少年,python和yum已经可用了

另一种下载rpm包的方法,更快,但是需要一台同样环境的服务器:

这里是有包了,没有命令

这里是批量把包装了上:

另外错误姿势示范:有包也装不上,这是依赖关系处理不当

故事到此为止。

++++++++++++++++++++++++++++++++++++++++++

怎么说,这个故事告诉我们: ① 新同学的岗前培训很重要(这是个实习生搞得),你好他也好。你省的麻烦,他省得担惊受怕,职业生涯受挫。

② 运维同学不出手则已,一出手必须解决问题。其实我在看了环境后问了句能不能重装,先把后路给铺好,也是体现咱职业技术的时候。

最后,鸡汤一碗,早点休息,不然眼黑,手抖,指不定敲了什么命令自己也不知道。多休息也能捍卫发际线!  md 过不去的梗,发际线~<~

原文地址:http://blog.51cto.com/welcomeweb/2132654

时间: 2024-10-19 19:54:29

CentOS7修复python拯救yum的相关文章

CentOS7 升级python同时解决yum损坏问题

CentOS7中的python版本为python2.7.5,升级到最新版的python时需要注意两个问题 新版的python安装好后要修改python的系统默认指向问题 升级到最新版python后yum报错的问题 下面对新版的安装步骤进行说明. 一.下载并安装最新版python 1.下载并解压 # wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz # tar -zxf Python-3.5.2.tgz 2.安装Python

CentOS 6.4升级Python导致yum无法使用

1.查看当前系统python的版本 1python -V 2.下载2.7.3版本的Python 1wget http://    python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 3.解压和安装 tar -jxvf Python-2.7.3.tar.bz2 #进入解压后的目录 cd Python-2.7.3 #编译和安装 ./configure make make install 4.查看是否安装成功 /usr/local/bin/python2.

EnvironmentError: mysql_config not found问题解决(centos7下python安装mysql-python)

centos7下python安装mysql-python模块,执行命令: pip install mysql-python 出现报错:EnvironmentError: mysql_config not found 网上查了一下需安装mysql-devel yum -y install mysql-devel 安装成功后,执行命令python setup.py install 又出现报错:error: command 'gcc' failed with exit status 1 明明装了gcc

Centos6.9升级python版本,导致误删原python和yum后的解决办法

事故背景:前几天因项目需要,在服务器上搭建python3模块,误操作将原python2.6.6,导致yum文件不能用......... 现在只能含泪修复,博主在网上搜了一圈办法,基本上都不是那么的详细,现在记下这一方法,希望能帮到与我情况相同的朋友~ 1:卸载python(以免有些同学没有卸载干净) 1 2 3 rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps #强制删除已安装程序及其关联 whereis python|xargs r

CentOS7修复MBR和GRUB

CentOs7修复MBR和GRUB 一.修复MBR: MBR(Master Boot Record主引导记录): 硬盘的0柱面.0磁头.1扇区称为主引导扇区.其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magic number. 备份MBR: #dd if=/dev/sda of=/root/mbr.bak count=1 bs=512 破坏bootloader: #dd if=/dev/zero of=/dev/sda count=

centos7配置aliyun的yum源和epel源

一.centos7配置阿里云yum源 1.切换到/etc/yum.repos.d/目录下 cd /etc/yum.repos.d 2.将CentOS-Base.repo 改为CentOS-Base.repo.backup mv CentOS-Base.repo CentOS-Base.repo.backup 3.下载阿里云yum源到/etc/yum.repos.d/目录下 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyu

CentOS 6.5升级Python后yum不可用的解决方案

因开发需要,今天把CentOS 6.5自带的Python2.6.6升级到了Python2.7.3.按照如下步骤进行升级 1.查看当前系统python的版本 python -V 2.下载2.7.3版本的Python wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 3.解压和安装 tar -jxvf Python-2.7.3.tar.bz2 #进入解压后的目录 cd Python-2.7.3 #编译和安装 ./configur

Centos7更换阿里云yum源

备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup或mv /etc/yum/repos.d/{,CentOS-Base.repodate -I} centos7 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 或 curl -o /etc/yum.repos.d/

Centos7 安装python环境

保留python2 找到python所在位置,把python指向python2.7备份 [[email protected] /usr/bin]# cd ~ [[email protected] ~]# whereis python python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/