Server wiped after "yum remove python" [closed]
I'm sincerely sorry: I can feel the pain to have a server unbootable/unserviceable.
However, I'm lost when reading that:
After that it asked me something about removing dependencies and it looked like nothing I could miss so I clicked [Y]
The list of to-be-removed packages surely was really huge, as python
is an essential part of RHEL/CentOS. You should never confirm some warning message you don't really understand.
The best thing you can do, as already suggested, is to boot via a recovery media (ie: livecd), extract the required data files, and reinstall your machine with a newer CentOS release (and as CentOS 6 is quite old, I strongly suggest you to rebase on CentOS 7).
Frankly, because you did something you didn't fully understand. Python is an essential part of the OS and the things you considered unimportant are very important. Restore from backup.
When you removed Python, yum
showed you a long list of packages that would also be removed. This list contains such essentials as yum
itself, coreutils
, net-tools
and others. You confirmed to yum that you know what you are doing and want to proceed anyway. The result of this is a non-working system. This shouldn't be surprising.
For the record, on newer CentOS version this isnt't possible anymore, as certain packages are now marked as protected and can't be removed, only reinstalled or upgraded. And since CentOS 5 is now EOL anyway, this is a good time to upgrade to a newer version.
You did something without fully understanding the consequences
That install is irrecoverable, would require a lot of work to reinstall centos5. And that is a bad plan because
- CentOS 5 is End of Life, and therefore has no updates. This is extra serious given it sounds like a webserver serving content on the public internet and that you use panel apps to control it.
- CentOS >5 would have stopped you from doing this update and killing the box. That's a nice airbag to have.
- CentOS 7 claims to support major version upgrades in place. I've never used it, but being able to jump from 7 to 8 when it releases will be very good. Debian's had this since forever, but Redhat always required a reinstall for major version jumps.
Solution
Your best bet is to create a new VPS, fresh install CentOS7, and then reattached the old centos5 disk volume and mount it read-only. Then work to copy (not move) your data from the old drive to the new.
Note this would be my method using AWS. If your VPS provider can't attach disks to different VMs then you'll have to tweak the plan.
No matter what you do, please consider setting up automated backups in the future. It wouldn't save you, but it would make recovery somewhat more flexible. Right now you need the data on that disk in a new working server. Don't loose the existing disk.
How could this happen? Well, quite simple: By removing parts that were critical to your server.
Next steps for you: re-deploy a fresh OS and restore your data from backups.
As pointed out by dragon788 and others in the comments, in Gentoo, the developers also maintain a set of tinderbox packages which are just pre-built, binary versions of a set of core packages of the OS for just such situations. If you lose a core package, you just get the system booted to the LiveCD/DVD, mount the OS drive of the broken server and unpack the tinderbox package(s) to the filesystem, unmount, reboot and, if it boots up correctly, rebuild the packages back to your server's specs and configs.
So, to perform something similar in CentOS, I think you would need to find the right versions of the RPMs that were uninstalled, then boot to a LiveCD/DVD, mount the OS drive and chroot in (perhaps... if you are familiar with how to use the "--relocate" flag for rpm, you might not need to chroot), then reinstall those packages, unmount and reboot.
Of course, since support for CentOS 5 ended last month, after you get the system rebooted properly, you can update it to a current version.
HTH.