CENTOS手动安装修复python ,YUM CENTOS手动安装修复YUM
CENTOS手动安装修复YUM
一、问题场景
centos 上的 python 版本默认比较低,很多同学都会手动升级 python 的版本到 3.x。
因为 yum 的代码是依赖 python2.x 的,如果直接删除老版本 python ,会导致 yum 不可用。
# 报错核心语句 No module named yum
这个情况必须手动修复,很多同学因为修复失败而重装了系统,这样成本会很高。
这里以 centos7.5 x64 为例子,进行修复演示。
二、手动修复
2.1 下载 rpm 包
centos 官方下载网站是 http://mirror.centos.org/centos/。选择国内镜像网站会快一些。这里使用的是 mirrors.ustc.edu.cn。
首页就有各个方向的目录链接。
进到 7.5 对应的目录 http://mirrors.ustc.edu.cn/centos/7.5.1804/, 发现这里是空的。不过这没有关系,同一个大版本号下, rpm 包是兼容的。所以可以使用 7.6 目录下的包。
http://mirrors.ustc.edu.cn/centos/7.6.1810/os/x86_64/Packages/ ,这里就是我们所需的 python 和 yum 包 所在地。
下载如下包
# python 部分 python-backports-1.0-8.el7.x86_64.rpm python-pycurl-7.19.0-19.el7.x86_64.rpm python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm python-ipaddress-1.0.16-2.el7.noarch.rpm python-setuptools-0.9.8-7.el7.noarch.rpm python-urlgrabber-3.10-9.el7.noarch.rpm python-2.7.5-76.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm python-libs-2.7.5-76.el7.x86_64.rpm python-devel-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm rpm-python-4.11.3-35.el7.x86_64.rpm # yum 部分 yum-3.4.3-161.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
2.2 安装 rpm 包
先安装 python。
运行 rpm 命令。这里一定要加 --replacefiles --replacepkgs 参数, 因为需要覆盖一些老文件老包,不加的话会提示文件冲突或者包已经安装过了。
sudo rpm --replacefiles --replacepkgs -ivh python-backports-1.0-8.el7.x86_64.rpm python-pycurl-7.19.0-19.el7.x86_64.rpm python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm python-ipaddress-1.0.16-2.el7.noarch.rpm python-setuptools-0.9.8-7.el7.noarch.rpm python-urlgrabber-3.10-9.el7.noarch.rpm python-2.7.5-76.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm python-libs-2.7.5-76.el7.x86_64.rpm python-devel-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm python-2.7.5-76.el7.x86_64.rpm rpm-4.11.3-35.el7.x86_64.rpm rpm-python-4.11.3-35.el7.x86_64.rpm
输出为
warning: package python-2.7.5-76.el7.x86_64 was already added, skipping python-2.7.5-76.el7.x86_64 warning: package rpm-4.11.3-35.el7.x86_64 was already added, skipping rpm-4.11.3-35.el7.x86_64 Preparing... ################################# [100%] Updating / installing... 1:python-libs-2.7.5-76.el7 ################################# [ 8%] 2:python-2.7.5-76.el7 ################################# [ 17%] 3:python-backports-1.0-8.el7 ################################# [ 25%] 4:python-pycurl-7.19.0-19.el7 ################################# [ 33%] 5:python-ipaddress-1.0.16-2.el7 ################################# [ 42%] 6:python-backports-ssl_match_hostna################################# [ 50%] 7:rpm-4.11.3-35.el7 ################################# [ 58%] 8:rpm-python-4.11.3-35.el7 ################################# [ 67%] 9:python-setuptools-0.9.8-7.el7 ################################# [ 75%] 10:python-urlgrabber-3.10-9.el7 ################################# [ 83%] 11:python-iniparse-0.4-9.el7 ################################# [ 92%] 12:python-devel-2.7.5-76.el7 ################################# [100%]
再安装 yum,同样也要加 --replacefiles --replacepkgs。
sudo rpm --replacefiles --replacepkgs -ivh yum-3.4.3-161.el7.centos.noarch.rpm rpm-python-4.11.3-35.el7.x86_64.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm rpm-4.11.3-35.el7.x86_64.rpm
输出为
Preparing... ################################# [100%] Updating / installing... 1:rpm-4.11.3-35.el7 ################################# [ 20%] 2:rpm-python-4.11.3-35.el7 ################################# [ 40%] 3:yum-metadata-parser-1.1.4-10.el7 ################################# [ 60%] 4:yum-plugin-fastestmirror-1.1.31-5################################# [ 80%] 5:yum-3.4.3-161.el7.centos ################################# [100%]
这里一定要注意,必须出现进度条 100% 的 输出,才是安装成功了。
不同版本的系统,需要的包可能不太一样,当运行安装命令时,可能会提示有一些依赖包缺失。
这种情况下,可以根据提示下载响应的依赖包,添加到 rpm -ivh 的列表中。
2.3 可以使用了
尝试运行下 yum。
yum --version
输出为
3.4.3 Installed: rpm-4.11.3-32.el7.x86_64 at 2018-06-20 10:02 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-04-11 03:54 Committed: Panu Matilainen <pmatilai@redhat.com> at 2017-11-13 Installed: rpm-4.11.3-35.el7.x86_64 at 2019-03-07 10:09 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 19:27 Committed: Pavlina Moravcova Varekova <pmoravco@redhat.com> at 2018-06-19 Installed: yum-3.4.3-161.el7.centos.noarch at 2019-03-07 10:08 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-11-05 01:54 Committed: CentOS Sources <bugs@centos.org> at 2018-10-30 Installed: yum-plugin-fastestmirror-1.1.31-50.el7.noarch at 2019-03-07 10:08 Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 22:58 Committed: Michal Domonkos <mdomonko@redhat.com> at 2018-08-24
三、python 升级小建议
最好编译安装 python 包到一个独立的目录,需要使用高版本 python 时,直接指定此版本的可执行文件路径即可。
千万不要删除老版本 python, yum 本身自己升级兼容可能还需要很久,当前还是会依赖系统默认的 python。
CENTOS手动安装修复python ,YUM CENTOS手动安装修复YUM的更多相关文章
- Centos的 mysql for python的下载与安装
mysql-python的安装包下载地址:http://sourceforge.net/projects/mysql-python/files/latest/download linux环境是 Cen ...
- linux centos7 安装虚拟Python环境,pyenv安装文档
python多版本控制pyenv安装文档 1.在线安装: curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-i ...
- 亲测可用的优雅的在已经安装了python的Ubuntu上安装python3.5
我的Ubuntu上已经安装了python2.7和3.4. 用以下方法可以方便的顺利的安装python3.5,使用的时候也不会发生冲突. 一条一条输入以下语句 wget https://www.pyth ...
- python easy_install centos 下安装过程和原理解析
一.easy_install 安装过程 其安装过程有很多种,我也找了很多的例子,但是结果都不太好,以下方法的结果是不错的. easy_install与yum类似,使用easy_install,可以轻松 ...
- python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...
- windows7下搭建python环境并用pip安装networkx
1.安装顺序:Python+pip+pywin32+numpy+matplotlib+networkx 2.版本问题 所安装的所有程序和包都需要具有统一的python版本.系统版本和位宽,所以第一步要 ...
- SPSS python教程:[1]安装Python Essentials
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- Linux手动安装新版本Python教程(CentOS)
一.说明 1.1 linux为什么不升级python版本 2008年python3就发布了,到2020年1月1日python2.7就停止更新了,为什么主流的linux迟迟不去除python2自带pyt ...
- CentOS 6.5上安装python2.7、pip以及Python命令行补全和yum冲突解决
目前CentOS6.5上自带的python版本为2.6,升级到python2.7会碰到很多问题.本文将介绍如何安装python2.7.pip以及python命令行补全. 一.如何安装python2.7 ...
- CentOS 6.5本地yum源、局域网离线yum仓库(断网情况下轻松安装各种依赖包)
在工作中, 公司的服务器大部分都禁止连接外网的,初始化系统,测试某些产品时,往往缺一些软件或依赖包,一个个上传到机器,如此浪费时间,浪费金钱,en...yum能够自动查找并解决rpm包之间的依赖关系, ...
随机推荐
- Java多线程小总结
多线程 线程与进程 线程:具有完成特定任务的一条执行路径,是CPU执行的最小单位 进程:正在执行的程序 重点:CPU在某个时间刻度上只能够执行一条原子性语句 字节最小是bit位 原子性语句:不能够再次 ...
- nginx系列9:HTTP反向代理请求处理流程
HTTP反向代理请求处理流程 如下图:
- eclipse建立工作集管理项目
废话不多说,直接上图 然后新建java working set管理项目,让自己的项目清晰明了
- webpack 单独打包指定JS文件(CopyWebpackPlugin)
背景: 不确定打出的前端包所访问的后端IP,需要对项目中IP配置文件单独拿出来,方便运维部署的时候对IP做修改.因此,需要用webpack单独打包指定文件.npm install --save-dev ...
- Dynamics 365中极特殊语言的文字搜索结果异常
微软动态CRM专家罗勇 ,回复316或者20190314可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 有些比较少见的问题, ...
- python的学习笔记01_2变量 常量 注释 用户交互 格式化输出
变量是什么? 变量的作用 Variables are used to store information to be referenced and manipulated in a computer ...
- Testlink1.9.17使用方法(第二章 登录&汉化设置)
第二章 登录&汉化设置 QQ交流群:585499566 1,使用超级账户admin/admin登录. 2,登录后,会提示创建一个新的项目,先不要创建,先进入用户管理,设置成中文显示,也就是汉化 ...
- top命令用法详解
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.通过top命令所提供的互动式界面,用热键可以管理. 语法 top(选项) 选项 -b:以批处理模式 ...
- Doctype知识点总结
DOCTYPE是document type (文档类型) 的缩写.<!DOCTYPE >声明位于文档的最前面,处于标签之前,它不是html标签.主要作用是告诉浏览器的解析器使用哪种HTML ...
- 随心测试_数据库_003 <数据库存储结构>
接上篇:了解了_数据库系统组成,继续理解必备知识点:数据库存储_逻辑结构 快速理解 数据存储结构:数据库系统_数据库_表 1. 理解什么是数据库 数据库发展:大致由 人工管理.文件系统.数据库系统(高 ...