修复CentOS7升级Python到3.6版本后yum不能使用的问题(续)

综合编程 2018-01-28 阅读原文

在上一篇文章中通过重装yum解决了无法使用Python3解释执行的问题,但是 yum -y update 后又会使得之前设置的软链接( ln -s /usr/local/bin/python3.6 /usr/bin/python )被替换成python2.7。为了把Python3设置为默认py解释器的同时保证yum能正常使用,还得从yum相关脚本下手。

不难猜测这些脚本都是使用py2语法,如果能把它们声明的解释器改成python2,那么问题就迎刃而解了。搜索了一下,发现在 /usr/bin/ 目录有7个yum相关的脚本,再加上前文提到的 /usr/libexec/urlgrabber-ext-down 共8个。

1 解决方法

这里直接使用shell脚本来把这8个脚本文件中的 /usr/bin/python 替换成 /usr/bin/python2

#!/bin/bash
# FileName:      python3caseyumbug2.sh
# Description:   修复CentOS7升级Python到3.6版本后yum不能使用的问题(续)
# Simple Usage:  sh python3caseyumbug2.sh
# (c) 2018.01.28 vfhky https://typecodes.com/linux/python3caseyumbug2.html
# https://github.com/vfhky/shell-tools/blob/master/filehandle/python3caseyumbug2.sh


echo "begin handle /usr/bin/yum*."
ALL_YUM_FILES=$(find /usr/bin/ -type f -name "yum*")
for SINGLE_FILE in ${ALL_YUM_FILES}
do
    sed -i 's/#!/usr/bin/python$/#!/usr/bin/python2/' ${SINGLE_FILE}
done


echo "begin handle /usr/libexec/urlgrabber-ext-down."
sed -i 's//usr/bin/python$//usr/bin/python2/' /usr/libexec/urlgrabber-ext-down

echo "done."

exit 0

2 后记

通过上面的脚本处理后,即使CentOS7被设置成默认使用Python3.6来执行py脚本,yum工具也不会受到影响了。

TypeCodes

责编内容by:TypeCodes阅读原文】。感谢您的支持!

您可能感兴趣的

PHP实现订单的延时处理 业务需求 最近在做业务的时候需要实现客户下单之后订单超时未支付自动取消的功能,刚开始确认了几种方法: 客户端到时间请求取消 服务端定时查询...
Sleep a loop python to iterate at the exact moment... I have a Python 3 script that will run an infinite loop, 24/7. It makes a websit...
基于深度学习的视频多目标跟踪实现 据我目前了解掌握,多目标跟踪大概有两种方式: Option1 基于初始化帧的跟踪,在视频第一帧中选择你的目标,之后交给跟踪算法去实现目标的跟踪。这种方式基本...
Python 的 `NotImplemented`类型 导读:本文讨论 Python 的 NotImplemented 它是什么,它意味着什么,什么时候应该使用。 是什么 >&g...