Server relocation can be fun!
I’m in the final stages of moving my machines out of the co-lo that they’ve been sitting in for the past 12 years or so (the management there has been getting steadily more flakey, and I’d started planning on moving out a year or so ago, but kept putting it off because I just knew that the relocation would be more fun than I wanted) but finally got the contents of gehenna relocated to a virtual server at another site.
Fortunately my hardware is positively ancient, so I was able to find a cheap(ish; US$15/month for a virtual machine running under vmware) small disk but large bandwidth vendor who offered freebsd 7.1 slices on their VM. So that meant it was easy to pick stuff off my existing FreeBSD 4.10 machine and drop it onto the new 7.1 machine?
Oh ho ho ho. No. The curse of Open Source®©™ software is that it’s written to be multiplatform; you can run it under both Redhat and Debian Linux. FreeBSD is not either, which means that things like, oh, Apache won’t build properly (I tried to hand-build 1.3.42 and whatever top of tree for the 2.0 series were, and the only way they worked was if I statically built modules into them. And then after that I couldn’t get p*rl (needed for a third-party netsc*bbl* server that runs on gehenna) or php (needed for another third-party wiki that runs on gehenna, plus for some of the more chromey pages on my website.) So I had to use ports, which meant that I got to write 1gb of my 10gb disk off just to hold all the stupid gnu crapware that those three things used.
And then the mod_php4 that ports built wouldn’t work with pmwiki, because of the
tiny detail of not being built with either session or pcre support. And after
I sorted that out (by the simple expedient of going in and hand-editing the ports Makefile,) I discovered that my pstree
program doesn’t work on freebsd
7.1 because the format of kvm_t
and kproc_t
have changed since the 4.x days and are just as well documented now as they were then (which is to say not at all; I had to sit down next to the #include
file and make the changes from the sources before the thing worked.)
On the bright side, git
built all by itself after I went in and told it in no
uncertain terms that there wasn’t going to be any g*dd*mn python interpreter
on my machine. And discount and annotations just
worked, thanks to my sticking to a SLS linux box with gcc 2.7 as one of my primary
development platforms.
I do not expect any subsequent server moves will be any less painful. I’m just glad that my web server is sitting on a new box (after hand-editing a couple of ports so that they’d actually work) and I was still able to get a few hours of sleep last night.
(And this evening I get to move the mail and news from pell to downbelow. Oh joy.)