One of the biggest knocks against Gentoo is the fact it’s pretty much entirely built from source. Which escentially means it’s not a matter of just hit install, twiddle your thumbs for a minute and a half, hit okay and go on about your business. It also means if there’s an update that has the potential of breaking things, the breakage tends to be a little bit on the larger than life side. So you don’t tend to do the update unless you’re sure you can block off a bit of time for any required troubleshooting afterwards. I’ve been using my gentoo instalation as a sort of means of learning my way around linux in both a technical and non-technical aspect. Which, is largely why it’s not yet made it to my production machine–if I break something horribly, which has yet to actually happen, I prefer to be able to just work at fixing it whenever and not have to bother with needing to borrow someone else’s machine for the important stuff. Although, using this machine for the test bed might have made this most recent update go just a tiny bit faster.
I don’t perform a complete system update very often–usually once every couple weeks, if I think about it. The rest of the time I spend tinkering with what I’ve got installed and seeing if I can get it to play just that little tiny bit nicer. So, this last update ended up being a pretty healthy one, including upgrades to several core libraries and utilities. thankfully, this update didn’t touch anything that belongs to the Gnome desktop interface, so I wasn’t left waiting all day for that to get around to finish compiling. Or, you’d think anyway.
turns out it did come with an update to the library that deals with processing and manipulating PNG-formatted images, known as libpng. While not a majorly huge update, 1.2 to 1.4, it was enough that I ended up being in for a rather long night anyway. I have a couple packages installed on the server for image handling outside of the gnome environment, as requirements for things like PHP–I’d planned to run a tiny webserver on my laptop, mostly for a testing environment if I didn’t want to take up my webspace with a project that may not exist for more than a week. One of those utilities also got some love. Only problem is when I went to compile it, it was nice enough to throw me this error in return. Seems it was hardcoded to look instinctively for libpng 1.2, which was no longer present on the system. Oopsies.
In comes one of Gentoo’s more popular utilities–revdep-rebuild, which escentially goes back through your entire dependancy tree and recompiles anything that could possibly be missing a library, or providing a library something else is missing. It’d been reported on that forum thread and on the Gentoo mailing list that that utility alone might not fix me, so I’d escentially blocked out the next couple days to diagnose, triage, clean out and recompile just about everything under the sun manually. If that didn’t fix me there were bigger problems here than I’m qualified to deal with. So I had that utility run, and surprisingly, it didn’t explode all over the place.
It found both image handling utilities outside of the Gnome environment, and another 96 packages inside that environment to rebuild. Fun times. So, 98 packages and 30 hours later–it’s a 5-year-old HP laptop I’m testing this on, remember–the thing managed to piece itself together without first collapsing in on itself. And I only had some minor cleanup work to do afterwards.
I found three interesting surprises in dealing with this latest round of coax the software. Gentoo is an awesomely cool OS to goof off with. If I wanted to start doing production-ready things with it, like I’m doing for both my servers–this website may end up moving to one of said servers at some point, it could probably run circles around this machine–yes, even if it’s on a 5-year-old box. Second, the OS handles itself supremely well during major rebuilding tasks–operations like this, if I attempted it on Ubuntu, would have probably resulted in epically catastrophic failure. And, most importantly, I don’t care which OS you’re using, rebuilding of even a small part of Gnome sucks. Royally. Just thought it needed to be said. But, at least if I have to rebuild Gnome I know it’ll probably not result in mass amounts of hair pulling. Now, if I can just get around to wrapping my head around the Apache configuration files, I’ll be in business.