运行该命令后,我遇到了灾难yum remove python
,现在我无法再启动服务器。
事情的经过:我尝试通过 CentOS 5 VPS 上的 yum 更新一些应用程序,但由于一些奇怪的 python 2.4 错误,命令失败。我注意到我的 python 版本太旧了,我尝试先将其删除,然后再重新安装,就这样yum remove python
。
之后,它询问我一些有关删除依赖项的问题,看起来没什么可错过的,所以我点击了Y
。
因此,后果就是我无法运行任何命令。我甚至尝试过,cd /var/www
但它说的是“ command does not exist in /usr/bin
”。当我过去tab看到文件夹导航建议时,文件结构似乎仍然存在(至少/var/www
对我来说非常重要的部分)。之后,我尝试重新启动 vps(从管理面板重新启动,因为reboot
命令不起作用),现在它不再启动了。
现在我的问题是:这样的命令怎么可能这样破坏我的服务器?
答案1
我真诚地感到抱歉:我能感受到服务器无法启动/无法服务的痛苦。
然而,当我读到以下内容时,我感到很困惑:
之后,它询问我一些关于删除依赖项的问题,看起来没什么可错过的,所以我点击了[Y]
需要删除的软件包列表肯定是真的庞大,python
是 RHEL/CentOS 的重要组成部分。你应该绝不确认一些您不太理解的警告信息。
正如已经建议的那样,您可以做的最好的事情是通过恢复媒体(即:livecd)启动,提取所需的数据文件,然后使用较新的 CentOS 版本重新安装您的机器(由于 CentOS 6 已经很旧,我强烈建议您在 CentOS 7 上重新安装)。
答案2
坦白说,因为你做了一些你并不完全理解的事情。Python 是操作系统的重要组成部分,你认为不重要的事情却非常重要。从备份中恢复。
当你删除 Python 时,yum
会向你显示一长串将被删除的软件包。此列表包含诸如yum
其本身coreutils
、net-tools
以及其他软件包等必需品。你向 yum 确认你知道自己在做什么并且无论如何都想继续。结果就是系统无法正常工作。这并不奇怪。
需要说明的是,在较新的 CentOS 版本中,这种情况不再可能,因为某些软件包现在被标记为受保护,无法删除,只能重新安装或升级。而且由于 CentOS 5 现在已经停产,因此现在是升级到较新版本的好时机。
答案3
你做了一些没有充分认识到后果
该安装无法恢复,需要大量工作才能重新安装 centos5。这是一个糟糕的计划,因为
- CentOS 5 已停产,因此没有更新。这非常严重,因为它听起来像是在公共互联网上提供内容的 Web 服务器,并且您使用面板应用程序来控制它。
- CentOS >5 会阻止您进行此更新并终止该机箱。这是一个很好的安全气囊。
- CentOS 7 声称支持主要版本升级。我从未使用过它,但如果它发布时能够从 7 跳到 8,那就太好了。Debian 一直都有这个功能,但 Redhat 总是要求重新安装才能进行主要版本跳转。
解决方案
最好的办法是创建一个新的 VPS,全新安装 CentOS7,然后重新连接旧的 centos5 磁盘卷并将其挂载为只读。然后努力将数据从旧驱动器复制(而不是移动)到新驱动器。
请注意,这是我使用 AWS 的方法。如果您的 VPS 提供商无法将磁盘连接到不同的 VM,那么您必须调整计划。
不管你做什么,请考虑在将来设置自动备份。它不会拯救你,但它会使恢复更加灵活。现在你需要在新的工作服务器上使用该磁盘上的数据。不要丢失现有磁盘。
答案4
正如 dragon788 和其他人在评论中指出的那样,在 Gentoo 中,开发人员还维护了一组火药桶软件包只是针对此类情况预先构建的一组操作系统核心软件包的二进制版本。如果您丢失了核心软件包,您只需将系统启动到 LiveCD/DVD,安装损坏服务器的操作系统驱动器,将 tinderbox 软件包解压到文件系统,卸载,重新启动,如果启动正常,则根据服务器的规格和配置重建软件包。
因此,要在 CentOS 中执行类似操作,我认为您需要找到已卸载的 RPM 的正确版本,然后启动到 LiveCD/DVD,挂载操作系统驱动器并 chroot(也许...如果您熟悉如何使用“--重新定位“举报转速,您可能不需要 chroot),然后重新安装这些软件包,卸载并重新启动。
当然,由于对 CentOS 5 的支持已于上个月结束,因此在您正确重启系统后,您可以将其更新到当前版本。
嗨嗨。