How to “use” Gentoo
I love gentoo, I really do. Every time I get angry with it and try something else I am always dissappointed in the package managers. Portage, while slow as dirt, does package management right. Sure it has drawbacks, and I’ll get to those, but first let’s look at how it does things right.
The biggest boon to portage is the exaustive list of packages available to it. How do they do that, you ask?? They do it by decentralizing the packages. Because the only thing they need offer are the ebuilds and not a binary, they can house a lot of stuff. Doesn’t sound decentralized to me? Well it is. See they don’t need to compile a binary and place that on a publicly available server. Just a few text files that tell make (and as a result gcc, or other) what it needs to do after it gets the source. And that source doesn’t need to be maintained on gentoo mirrors either (though some packages are), it can stay on the authors website and be downloaded from there. Genius! However that brings us to the drawbacks.
Namely, well, everything has to be compiled (there are some binary packages available for unbearably large programs, and of course if you are installing an interpreted program, those source files will just be installed). After installation it’s really not that bad. On modern hardware it doesn’t take that long to install most things. However the install…well that is another story. I have gotten fairly deft at intalling gentoo. I can go from bare metal to an XFCE4 desktop in around 4 hours (yes that is wicked fast). However that doesn’t include A LOT of apps. That is just a base install, and the packages that come with XFCE4. And none of us could just get by on that (not for a desktop anyway). So it takes the better part of a day to get all my other apps installed. And then in the week following a new installation I am forever running into things I haven’t installed or configured yet. So that can be a bummer.
However, there are somethings we can do to minimize that. One is “Don’t reinstall that often”. Probably fair advice. However I have a tendency to install lots of crazy software, try it out and discard it. After a while I start to get the heebee jeebees about my crufty file system. Then…well I tend to install a lot of unstable software. I can’t ever leave well enough alone. “There has to be something better!!!”. And that can lead to general instability (just two weeks ago I was hell bent on installing XGL…that led to a complete reinstall ;). For some, not reinstalling often could be a viable choice, it doesn’t really work for me though.
Second, and the one that actually *does* work for me is making a backup. A simple rsync after a fresh install to the server and I have essentially a base system just sitting there waiting on me should tragedy befall my machine. I rsync the entire system to the server after I do a new install. Something bad happens, rsync it back using a live cd, install grub to the MBR, reboot. Takes all of 30 minutes.
So what is the down side to that? Well you have to know what you are doing. Reinstalling grub isn’t hard, but the first time you do it you may get it wrong, and that can be frustrating. The second drawback concerns how you handle the rsync. You have two choices and neither are perfect. One, you can rsync off the fresh install and let it alone. Let it sit and wait patiently for you to come calling in a time of dire need. Or two, you continue to rsync overtop of that at incremental periods (nightly?, weekley?, up to you).
The first choice will leave you out of date and without things you have installed, or created (code, pictures, text files), since that intial install. The second falls a bit short as well, as it tends to make the system just a crufty in the first place, and as a result is really only good for emergencies. Plus linux has this bad habit of not needing rebooted all the time. If you hose something, and it’s effects won’t be scene until the next reboot…and your backup script runs…well you can see where that is headed.
At any rate. I think I like the first option best. rsync it, let it alone. It’s there if I need to get back to square one. Use some version control software for created files and then do a complete reinstall every 6 months or so anyway…I mean it’s only a day right? :)