Outside Red Rock Canyon, Nevada

Moving back to Debian, like I never left

Submitted

Sun 17 July 2011 as Blog

Last night, I tried to upgrade from PHP 5.2 to PHP 5.3 on my Arch Linux install on this server. Drupal 6.x has supported PHP 5.3 for quite a few revisions now, 5.3 is generally considered stable for production use, and more importantly a PHP-APC package was not available for PHP 5.2.

Furthermore, a while back I stopped grabbing the latest and greatest from Arch for this server, so my base install was out-of-date. To make matters worse, the mirror that I had been using apparently had fallen out of use. (Shame on you, Georgia Tech!) Either way, once I started down the rabbit hole of trying to upgrade 95% of all the installed packages (a guesstimate), I recognized that I would expend just as much effort starting over from scratch.

I had been considering moving away from Arch on this server for some time. Arch was a great distro for me back when I was actively maintaining my Linux-powered MythTV/XBMC DVR. Arch's rolling release concept ensured that I would always have the latest quasi-stable version of any package I needed, and since a lot of the video playback libraries I was relying on were bleeding edge, I couldn't wait around for Debian (or Ubuntu, Fedora, or what-have-you) to catch up. I had been a Gentoo fanboy for a while before Arch, but the Atom 330 in my DVR made full-system compiling an unnecessarily tedious chore. So, Arch worked for me there. When it came time for me to set up this Linode, I went with what I knew.

But on a server, you don't want bleeding edge anything. You really just want the latest honest-to-goodness stable version of whatever services you're running. In my case, I just needed SSH, lighttpd, PHP, MySQL and an aggressive iptables config. And sure, a lot of that is plenty stable on Arch, but if you're used to being able to grab packages that are, perhaps, a version or two behind what Arch is offering at that moment, you're SOL. And this is what happened to me last night when I tried to get APC installed — I ended up trying to upgrade nearly everything to catch up to Arch.

In my case, I let my Arch server get so far out-of-date that it (a) was no longer pulling from an active mirror, (b) needed a newer version of Pacman to know exactly how out-of-date everything was, and (c) would require me to invest a significant amount of time diff'ing all the *.pacnew files in /etc, making sure that new dependencies wouldn't break other things, and so forth.

All in all, I decided to go back to Debian, which has a well-earned reputation for being a stick in the mud when it comes to releases. To Linode's credit, it was nearly a one-click migration. I was up and running on the new Debian VM within minutes, and after copying over my files and config from the Arch partitions, my total downtime — with no pre-planning on my part, after initiating this changeover on a whim — was about 90 minutes.

To Debian's credit, they haven't seem to have changed much since 2004, which was the last time I worked with Debian on a regular basis. Since I'm keeping it simple, I just needed to find where the various config files were and learn the new daemon management tools. I still have a few more minor tasks to work on — installing Logrotate, making sure that all the services come back after a restart, etc. — but all-in-all, things seem to be running perfectly good.

And in case you're wondering, we are now running PHP 5.3 with APC turned on, which is what kicked this whole thing off.