Linux—yum的python版本错误——高级解决方案
彻底搞明白,python升级后,为什么会导致yum不可用
首先我们来分析下,python升级后,yum为什么会不可用?
先说个关于python的问题,Linux系统很多软件都依赖于python,因此不建议彻底卸载python,如果想要使用其他版本的python,可使用--prefix参数指定其安装路径,安装完成后配置好环境变量即可。指定安装路径也很简单,如下是安装2.7.15的方法,下文中所提到的python同样以python2.7.15为例:
./configure --prefix=/usr/local/python2.7.15 --with-ssl --enable-shared
make && make install
接下来我们说说yum,yum本质上也是属于python的一个模块,打开/usr/bin/yum,我们可以看到其实它执行的是python,并且导入了yum模块。而python有一个非常重要的lib库文件,默认在/usr/lib64目录下,全名叫 libpython2.7.so.1.0(对应python2.7),python每次执行首先会调用该lib库,python与lib库属于一一对应关系。 一般情况下yum是通过系统自带的python安装的,因此它就必须使用系统自带的python的lib库,我们打开/usr/bin/yum文件第一行内容是#!/usr/bin/python,调用python使用的是绝对路径,由此说明它只能依赖此python,所以我们要做的就是让yum调用原来的python以及原来python的lib库。
虽说yum中的python路径是写死的,但是并没有配置lib库文件的路径,而是在默认路径中查找lib库文件,那么当我们升级完python后,lib库文件已经更新,因此我们必须给yum配置原来的lib库文件,配置方法如下:
# 为原来的python创建一个lib文件夹
mkdir -p /usr/local/python2.7.5/lib
# 将原来的lib库文件拷贝至上一步新建的lib目录下,libpython2.7.so.1.0.bak对应原来的lib库文件
cp /usr/lib64/libpython2.7.so.1.0.bak /usr/local/python2.7.5/lib/libpython2.7.so.1.0
# 重命名yum文件
mv /usr/bin/yum /usr/bin/yum-exec
新建/usr/bin/yum文件,内容如下:
#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/python2.7.5/lib/
/usr/bin/yum-exec $*
建完成后添加可执行权限:
chmod +x /usr/bin/yum
检查yum是否已经可用
yum --version
下边是python升级后使其生效的两种方法:
方法一:设置系统环境变量
该方法是临时的,只在当前终端有效,当然你也可以将这些内容写入/etc/profile文件中,这样就可以永久生效,但是不推荐这样做,因为LD_LIBRARY_PATH这个变量是公用的。
设置系统环境变量的命令如下:
export PATH=/usr/local/python2.7.15/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/python2.7.15/lib
设置好之后的结果如下所示:
方法二:替换文件(推荐使用该方法)
# 将python的bin目录加入到PATH中
echo 'export PATH=/usr/local/python2.7.15/bin:$PATH' >> /etc/profile
# 备份原来的lib库文件
mv /usr/lib64/libpython2.7.so.1.0 /usr/lib64/libpython2.7.so.1.0.bak
# 将新的lib库文件拷贝至/usr/lib64下
cp /usr/local/python2.7.15/lib/libpython2.7.so.1.0 /usr/lib64/
# 重启机器
reboot
参考:https://blog.csdn.net/u013992330/java/article/details/95453623
Linux—yum的python版本错误——高级解决方案的更多相关文章
- Linux—yum的python版本错误——初级解决方案
为了安装rrdtool,发现不是少这个就是少那个,最后发现yum也不能用. 从网上找的解决yum问题. 转自:http://doarthon.blog.51cto.com/3175384/728809 ...
- linux下面升级 Python版本并修改yum属性信息
最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...
- 手抖把Python2.7卸载了,导致了自己的yum不可用以及yum因python版本无法使用的问题
摘要: 从标题就能看到我有多心如死灰了,简单介绍下我是如何自残的过程. ①首先因为需要部署爬虫程序,然后安装Python3. ②Python3系列和Python2系列版本不向下兼容,所以我就卸载了机器 ...
- linux服务器升级python版本(python2与python3共存)
linux服务器升级python版本 ######################################## 第一步先安装sqlite-devel,因为python2也有这个,python3 ...
- Linux yum提示Loaded plugins错误的解决方法
yum是Linux软件包管理器,也叫yum源,在yum使用过程中,有时会出现Loaded plugins错误,重启无效,遇到这种情况该如何解决呢?下面就给大家介绍下Linux yum提示Loaded ...
- linux 下切换Python版本(某用户,共存,替换)
当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.你可以按照以下方法使用 ls 命令来查看你的系 ...
- Linux下升级python版本
转载自:http://lovebeyond.iteye.com/blog/1770476 CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的 ...
- Ubutnu linux 下升级python版本,以2.x升级到3.x为例
Linux操作系统一般 都会自带python,但是python版本会比主流低,故升级python, 主要思路:自带的python的链接link文件是在/usr/bin 下,采用sudo apt-get ...
- linux 多个python版本的切换
源码安装新的python版本,我的安装路径: /usr/self/Python3.5.2 修改软链接到你所安装的python版本中: 默认python命令是在/usr/bin/目录下 1 sudo m ...
随机推荐
- SpringCloud 2020.0.4 系列之服务降级的其他用法与熔断
1. 概述 老话说的好:控制好自己的情绪,才能控制好自己的人生.冲动是魔鬼,冷静才最重要. 言归正传,之前聊了在 Feign 调用时,如何给整个 Feign接口类 增加降级策略. 今天我们来聊一下 H ...
- MIPI的走线阻抗
MIPI的走线阻抗100欧的要求是根据LVDS(Low Voltage Differential Signaling)电平定义的. LVDS差分信号PN两线最大幅度是350mV,内部一个恒流源电流是3 ...
- Nginx(一):初识Nginx
一.什么是Nginx? Nginx 是异步框架的Web服务器,也可以用作反向代理.负载平衡器和HTTP缓存.选择Nginx的一些优点:可以高并发连接.内存消耗少.成本低廉.配置文件简单.节省带宽.稳定 ...
- 原串反转 牛客网 程序员面试金典 C++ Python
原串反转 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniS ...
- hdu 1502 Regular Words(DP)
题意: 一个单词X由{A,B,C}三种字母构成. A(X):单词X中A的个数.B(X),C(X)同理. 一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有 ...
- 基于Lucene的全文检索实践
由于项目的需要,使用到了全文检索技术,这里将前段时间所做的工作进行一个实践总结,方便以后查阅.在实际的工作中,需要灵活的使用lucene里面的查询技术,以达到满足业务要求与搜索性能提升的目的. 一.全 ...
- 纯 CSS 自定义多行省略:从原理到实现
文字溢出怎么展示,你的需求是什么?单行还是多行?截断,省略,自定义样式,自适应高度?在这里你都能找到答案.接下来我会由浅入深,从原理到实现,带你一步步揭开多行省略的面纱.我们先从最简单的单行溢出省略开 ...
- robotframework-ride快捷方式打不开
我安装的是最新的RIDE2.0属于beta测试中,覆盖了3.8但仍不支持3.9 我的安装环境如下: 安装ride成功,启动ride的时候遇到了如下问题: 一:AttributeError: No at ...
- fabric运行错误汇总
Error generating signCA for org org1.example.com: Failed storing key [ECDSAP256]: Failed storing ECD ...
- 第四周PTA笔记 好吃的巧克力+特殊的翻译+下次一定(续)+走迷宫
好吃的巧克力 超市正在特价售卖巧克力,正好被贪吃的Lucky_dog看见了. 巧克力从左到右排成一排,一共有N个,M种. 超市有一个很奇怪的规定,就是你在购买巧克力时必须提供两个数字a和b,代表你要购 ...