centos 7.5.1804, 把自带的 python2.7.5 删除了之后 yum 无法启动,该如何拯救

2018-11-12 15:58:02 +08:00
 yuoboo

之前都是直接备份成别的名称不会管它的,刚才看到有 3 个启动方式,如是就删了其中一个,没太注意其他 2 个都是链接删除的哪个的,结果就悲剧了呀!!

重新安装了 python2.7.5, 将新装的 python2.7.5 软连接到 /usr/bin/yum文件里对应的 python 解释器路径,没能解决

尝试到 centos 网站下载官方( python***-****.rpm )包(一共 6 个包), 在使用 rpm 安装过程中报错了

warning: group mockbuild does not exist - using root  
warning: user mockbuild does not exist - using root  

软件包并没有安装上,对 linux 不怎么熟, 有大佬指点一下吗?感谢!

5552 次点击
所在节点    Linux
47 条回复
yuoboo
2018-11-12 17:58:14 +08:00
@raysonx 感谢, 回答这么详情,费心了,其实也没啥,昨天刚买的良心云的服务器,刚开始用,其实最简单的方式就是重装系统,我想尝试修复一下,放弃了, 刚刚重装系统,几分钟就好了!
yuoboo
2018-11-12 18:00:14 +08:00
@nicevar
@raysonx 确实有点强迫症。。哈哈哈哈
raysonx
2018-11-12 18:03:19 +08:00
@yuoboo 如果只是单纯想在 CentOS7 用新版本 Python 的话,建议:
1. 配置 EPEL 源( yum install epel-release 就可以)。EPEL 提供 python3.6 的包,可以使用 `yum install python36` 安装。
2. 或者使用 Docker。
3. 或者自行编译新版本 Python,但请不要覆盖系统自带的版本。
yuoboo
2018-11-12 18:05:14 +08:00
@araraloren 删过之后就不敢了
@whwq2012 你是怎么爬出来的
@zoroojack 有点强迫症,用不上就想干掉它
@hei1000 删过之后就知道了
yuoboo
2018-11-12 18:07:54 +08:00
@raysonx 尝试一下,感谢!以后就长记性了~_~
v2dead
2018-11-12 18:12:11 +08:00
当年我一个朋友作死的手法还和楼主不一样,他是自己编译安装了另一个版本的 python 覆盖原来的,然后 yum 不能用,我帮他调试,手工下载各种 rpm 包,手工修复依赖,再多次编译 python 试图恢复。折腾了三四个小时。

推荐最好的做法,直接快照 /重装,完全不要考虑修复的问题。
lolizeppelin
2018-11-12 18:26:09 +08:00
rpm 数据库是 c 写的

这玩意是红帽的, 光装 python 没法和 rpm 数据库互交

光这一个玩意就弄死 yum 了
lolizeppelin
2018-11-12 18:28:47 +08:00
网上那些一天教人 --force 和--nodeps 的就是坑

依赖都搞不清楚也敢瞎--nodeps 系统不死才怪

老老实实按规范卸载你就知道要卸多少东西才能卸掉系统的 python 了, 你当 rpm 的依赖随便写的?

不按规矩来系统就被搞乱呗
xxgirl2
2018-11-12 18:43:50 +08:00
我记得 ubuntu 的话如果误炸了什么东西,似乎可以用 live 启动盘切换 sysroot 再用 live 盘里的 apt 装回去,不知道 centos 有没有类似的操作。LZ 可以试着在这方向搜索一下。
exkernel
2018-11-12 18:45:46 +08:00
activepython 2.7 可救
likuku
2018-11-12 21:55:12 +08:00
@xxgirl2 你想多了,chroot 之后,livecd 环境就已经切到硬盘系统环境了,apt 管理数据库都是硬盘系统的了,和你直接用硬盘系统没差。
likuku
2018-11-12 21:56:50 +08:00
作有风险的操作之前,一定先作快照,或者全系统 tar 备份。

再次重复,看着系统自带的老旧 python,正确解法是用 pyenv 和 virtualenv
omph
2018-11-12 23:19:40 +08:00
scukmh
2018-11-12 23:39:17 +08:00
我也干过这种事,没救回来,直接重装了。
yubxpku
2018-11-13 00:57:22 +08:00
直接重装吧,自带 python 的依赖关系解除了。重装很难修复,会牵连一堆软件。并不是简单的在 PATH 里加个 bin 就完事的。
Osk
2018-11-13 01:37:42 +08:00
虽然很不厚道, 笑出声, 哈哈, 不是第一次在 v 站上看到这样作死的了.


来 Arch 邪教吧, pacman 可以静态链接, 再也不怕搞挂了. 就算搞挂了也可以在 live CD 里 pacman/pacstrap 救回来.
cnnblike
2018-11-13 02:40:35 +08:00
我之前也卸载过,我觉得这根本不可耻的,在学习 linux 怎么用的时候,谁没个洁癖发作把所有看不惯的包全删掉的冲动?
最后楼主,恢复非常复杂,建议你直接重装吧
msg7086
2018-11-13 03:07:15 +08:00
rpm 装的包和 make install 装的包是两回事。

另外 Linux 发行版是很忌讳 make install 装包的。没有了包管理,你装的软件是什么版本,打过哪些补丁,影响了哪些系统文件,全都不知道。CentOS 就算要更新,也应该用 EPEL 等第三方软件源来更新。更不要去随便动系统包,什么 libc 之类的,论坛上全是血泪史。
KasuganoSoras
2018-11-13 04:52:55 +08:00
你这操作和 yum remove iptables 一样危险。
内置的 Python 动不得,万一搞坏了就很麻烦。
当然我遇到过最恐怖的事情是 C 库坏了,那个才是真的惨
yuoboo
2018-11-13 07:53:11 +08:00
@msg7086 感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507043

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX