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

在上一篇文章中通过重装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责编内容来自:TypeCodes (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合编程 » 修复CentOS7升级Python到3.6版本后yum不能使用的问题(续)

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录