|
|
/ Hathaway Weblog / Linux distributions and package management |
I started with Red Hat, then I used Caldera, Debian, Mandrake, and Gentoo. Today I used SuSE; it's pretty nice. I used to look for two features in a distribution: ease of installation and maintainability. Having more experience with Linux, I now consider maintainability to be far more important. Guess which distribution wins the maintainability title? Gentoo Linux.
Ease of installation is a nice feature for system administrators. Today I set up SuSE on a server with 4 Serial ATA RAID-0 striped drives. Our objective for this system is to stream the data from a saturated gigabit network interface onto a disk array. SuSE made it easy to set this up and now the disk is no longer the bottleneck. hdparm says we can read 125 MB/s from the array, and a simple "dd" test managed to write about 250 MB/s for 10 seconds. That's pretty fast! We're only going to have this box for a week, so ease of installation was important.
System administration is really only a hobby for me, though. I shouldn't spend a lot of time setting up computers. So once I've set up a computer, I don't want to ever install its operating system again. I need to upgrade it incrementally. With most distributions, you get incremental security updates, but no new features until the next big release, at which time you have to reinstall the operating system. Microsoft Windows has the same problem, although the interval between Windows releases is about 3 years rather than 6 months.
Gentoo lets me keep up with the latest major free software packages with a simple pair of commands:
emerge sync && emerge -uDa world
I used to think I had the same capability to keep up to date with Mandrake's "Cooker" packages, but Cooker was too unstable for me. I thought Cooker was unstable because it uses bleeding-edge software, but it turns out that Gentoo uses the same bleeding-edge software yet remains quite stable. The difference is Gentoo's infrastructure:
- USE flags let me decide which libraries (as opposed to applications) are important to me. It reduces baggage.
- /var/cache/edb/world keeps track of which packages I explicitly asked for. It lets me distinguish packages I care about from packages that come in as dependencies.
- /usr/portage is like a big tree of RPM .spec files. It's easy to search and examine. It gives me a good perspective on the current state of free / open source software.
- "ebuild" files are the Gentoo equivalent of RPM .spec files, but ebuilds tend to be simpler and easier to read.
- /etc/portage/package.keywords lets me decide to follow the "unstable" branch for particular packages while staying with "stable" for the rest. OpenOffice and the NVidia drivers are more stable than the Gentoo maintainers give them credit for.
In short, Gentoo has the most mature package management system I'm aware of. It gives me a lot of freedom by letting me make choices that were formerly made only by Linux distributors.
