事故复盘
有个不懂python的朋友在我这借了一个python工具类想要简化工作,因为公司服务器没有python3环境,就想自己安装一下环境,但是没想到被某些博客误导,博客中提到删除python2的软连接,朋友是python小白,不小心误删了/usr/bin/目录下的python2文件!!于是我俩开始了漫长的修复过程…
别人的解决方案
找了几篇博客,大致都是需要先完全卸载服务器的python2残留文件,再去重新安装对应版本,具体怎么操作不做过多描述,但是问题又来了,朋友没有权限删除残留文件!!怎么搞?头疼。
最终解决
-
首先执行rpm -qa |grep python-2 ,查看服务器自带的python2具体版本,我的服务器就是2.7.5-90版本,注意你的版本号。
-
执行cat /etc/redhat-release ,查看服务器内核版本,我的是7.4.1708版本,注意你的版本号。
-
(这个方法可能会报错404,如果报错就按照步骤4操作)wget下载rpm
手动创建目录(不要在根目录创建新目录!!!),比如在家目录下执行mkdir rpm_tmp ,cd rpm_tmp 。
执行wget http://vault.centos.org/7.4.1708(这里是第二步查到的centos内核版本)/os/x86_64/Packages/python-2.7.5-90(这里是第一步查到的python的版本).el7.x86_64.rpm。出现404报错,执行第四步。
-
(如果步骤3成功,请跳过此步骤)下载RPM文件到本地
百度直接搜索python-2.7.5-90.el7.x86_64.rpm 下载,下载到本地,上传到服务器刚刚创建的目录,比如我的rpm_tmp 目录。我是在这个地址下载的:http://rpmfind.net/linux/RPM/centos/updates/7.9.2009/x86_64/Packages/python-2.7.5-90.el7.x86_64.html -
在刚刚创建的目录下执行rpm2cpio ./python-2.7.5-90.el7.x86_64.rpm | cpio -idv
-
进入到提取出来的usr/bin目录(注意usr前面没有/)
-
执行mv ./python2.7 /usr/bin/
-
执行 ll /usr/bin | grep python 查看/usr/bin下的软连接状态
如果python2相关的软链接是这样,那么就修复成功了!!!
-
如果python指向的不是python2,或者python2指向的不是python2.7,或者这几个软连接都没有,那么加上上图的几个软链接就ok了。