CentOS7误删系统Python2引发YUM工具彻底失效修复
· 开发
适用环境
- CentOS 7.x
- 为使用 Python3,误卸载系统自带 Python2
问题现象
执行 yum remove python 或 rpm -e python 之后,所有 yum 命令报错:
/usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
排查过程
- 尝试软链接修复:
ln -s /usr/bin/python3 /usr/bin/python,依然报错。
原因:yum依赖的
urlgrabber等模块是 Python2 语法,Python3 无法兼容运行。
- yum已经无法使用,只能依靠 rpm 命令手动恢复。
根本原因
CentOS7 的 yum 基于 Python2.7 开发,全部核心组件、插件强依赖系统 Python2。删除系统Python2等于直接删掉yum的解释器。简单建立python3软链接不能解决库兼容问题。
解决方案
抢救步骤(需要本地rpm包源)
- 下载 Python2.7 全套rpm包:
python、python-libs、python-urlgrabber等依赖。 - 强制重装Python2相关包:
rpm -ivh python-2.7.5-*.el7.x86_64.rpm --nodeps
rpm -ivh python-libs-2.7.5-*.el7.x86_64.rpm --nodeps
rpm -ivh python-urlgrabber-3.10-*.el7.noarch.rpm --nodeps
- 重装 yum 工具:
rpm -ivh yum-*.el7.noarch.rpm
稳妥备选方案
机器数据不重要可以直接重装系统。生产环境优先使用快照/备份恢复。
经验教训
严禁卸载 CentOS7 系统自带 Python2。 需要 Python3 直接并行安装:
yum install python3
也可以使用 SCL 软件集,不要替换系统默认 python。