Some time ago a colleague asked me for help getting python 3 on an old RHEL 5 box. That box now runs RHEL 6. If you’re curious as to why, read on.
In short, I screwed up.
What my friend asked for was to have python 3 available on his server.
What I heard was, “We need to replace python 2 with python 3.”
“No problem”, I thought. I’ll just use the IUS Community repo to do a “yum replace python” and he’ll be up and running in a snap.
As a long time Red Hat Enterprise guy I should have known better.
See, python 2 is a core part of the RHEL operating system. As fundamental as bash. Maybe even more fundamental. You really don’t want to mess with it. Ever.
Of course my little operation completely hosed the server, requiring that it be rebuilt from a fresh image. We decided we might as well ramp up to RHEL 6 while we were at it, which resulted in many hours spent porting stuff (mostly perl scripts) that really should have worked without modification. Oh yeah, and reconstructing really long crontabs that scheduled a ton of critical batch jobs. All of those backups I had in place over a decade of running those jobs suddenly went from evidence of paranoid fears on my part to proof of my infinite wisdom (the one file I failed to back up was the crontab of the user that ran most of those jobs — not a mistake I’ll ever make again).
All of which is an important reminder that no matter how smart we think we are, it’s sometimes not smart enough.
NOTE: For python 3 support my friend ended up just downloading the latest tarball and installing to /usr/local. Sometimes the simplest solution is really the best one after all.