A little background, for those of you who may be almost as sadistic as me. Installing Icecast on a CPanel server, any version, any time, used to be a right royal bitch. Compile the thing from source, curse as it spits out 80 million missing dependencies, compile those dependencies from source, curse as it still can’t find them–by the way, /usr/local/lib64 being in root’s environment path apparently does not help when the configure script is freaking braindead, then spend the next 5-10 minutes tracking down all those dependencies, finding the exact shared object the configure script wants to reference, then symlink the whole damn batch to a directory wherein the damn script wouldn’t bitch. If I didn’t occasionally *use* Icecast, just setting up the dependency structure for the compile process would warrant hourly billing for the poor bastard who asked for it. But since I do, and hey, it was an excuse to flex muscles I haven’t needed to flex since the last time I smashed Gentoo, I figured oh what the hell. So Icecast existed, compiled from source, dependencies and all. and I kept 80 million notes for the next time, just in case. And then the wickedest weirdest awesomest thing happened.
I’m not sure if it’s a CentOS 6 thing, or the version of CPanel I’m running, or hell, maybe the OS devs just finally decided let’s update a bunch of packages that we haven’t actually updated in at least a year and a half (Did I mention I hate binary OS’s for that?). But on a random thinggy, I thought hey, let’s run a theory. They’ve had time to fix their shit, and they’re not Debian, so maybe. So I skip the tracking down of my usual source dependency packages, and go straight to the configure process. It falls on the floor. Apparently, the server has ogg-vorbis support (hey, that’s an improvement right there), but it’s 0.6.x. Awesome. Wicked. Nifty. Cool. But Icecast wants 1.x. Well fuck me running. So I’m all ready to go tarball hunting. I’ve got links, I’ve got references to other links, I’ve got ice cold (no, literally ice cold) caffeine, bring it, bitch. I do the usual dance. make sure my links haven’t broken in a year and a half, make sure nothing was unexpectedly updated and I need to do something slightly different this time around, and I find something so new it still has that new geek smell. Where before, the CentOS package manager absolutely hated to do anything remotely involving Icecast and its dependencies, this time, I was fed exactly the command I needed, in exactly the format I expected, that I’m pretty sure I tried a year and a half ago that made just about everything fall down around my ears. But, hey. Maybe. I didn’t find this in Google last time I looked, so maybe. It would certainly make me less dependent on vodka, if nothing else. So I do the do, and suddenly, I’ve got updated libraries the configure script likes, and a couple packages I’m pretty sure the box I set this all up from via source last year is still missing. And because CentOS did whatever CentOS does with it, the configure script *should*, God willing, find the damn things without me needing to perform minor surgery. So I run it, kick back, and hope the booze store’s still open just in case this thing blows up–it wasn’t, by the way. And the thing not only compiles, but compiles like a dream. Thing threw less warnings on this box than it did last year.
I nearly fainted. CPanel doing what I say is a rare occurance when it comes to actual, significant admin things. CentOS doing what I say is even more rare, for anything, administrative or not. Both of them cooperating on the same task, at the same time, and neither’s arm needing to be twisted? That alternate universe theory sounds better and better all the time. And then I go and install something like Logwatch (believe it or not, the server was not handed to me with that installed), and I run smack into CPanel’s damned yum.conf exclude line. Okay, right universe. CPanel just wanted to mess with my head. Did I mention I hate it when CPanel wants to mess with my head?