Every day, somebody somewhere gets into a flame war about Linux distributions. I guess mostly people just want to feel validated in the choices that they've made, and want to firmly believe that the one they use is the best. If you've already decided that your distribution is the best, that's great. I'm happy that you and it found each other. But just in case you aren't predisposed, and are truly looking for some guidance, I'm going to write briefly about my experience with every Linux distribution I've used, so that you can make a more educated decision.

In chronological order, I have used:

Slackware (1996-1998)

When I started using Linux, it was on a machine that I had just built myself that had all the DOS that could fit on a single bootable 3.5" floppy. It was the first machine I had ever assembled myself and I had been curious about Linux, so I wanted to put Linux on it. I chose Slackware 2.2, which was an old version of Slackware at the time (by a year or two) mostly because I could find enough instructions and apply enough elbow grease to get it installed on my CD-less, Internet-less machine with a DOS partition.

Slackware was very flexible but that was because it was disorganized. I did a lot of manual updating of my Slackware system, by which I mean I downloaded the source and then configured, compiled, and installed it from scratch without the aid of any automation outside of the Makefile supplied with the source. I went through a couple of incredibly complicated upgrades that way (Linux 1.2 to Linux 2.0, a.out to ELF, libc5 to glibc) and learned a lot. Over time, though, the lack of a package manager and prescribed upgrade/update mechanism was an object lesson in entropy.

That system got so hopelessly beyond repair by way of ad-hoc updating and upgrading that wiping the system and starting over was the only viable option. I don't know that Slackware is any better today than it was then.

Red Hat (1998-2001)

After I wiped my Slackware system away, I installed Red Hat, mostly because some O'Reilly book that I'd bought somewhere came with a cover insert containing a Red Hat installation CD. I forget exactly which revision it was, but 5.1 sticks out in my head. At any rate, it was 5.x. Red Hat was great compared to Slackware. I had a package manager (RPM) and a GUI configurator (linuxconf) and everything seemed very neatly packaged.

I used Red Hat for about three years, during which I upgraded twice. The first upgrade was from version 5.x to version 6.2 using a version 6.2 CD that my LUG had passed out at a meeting. The second upgrade was from 6.2 to 7.0 by tricking the up2date program in 6.2 into thinking it was a version 7.0 installation that was very out of date. It was a neat trick, but it is a trick that's no longer possible without paying for Red Hat's update subscription. When 7.1 was released, I tried to do it again, but failed, and I was faced with having to somehow get a Red Hat 7.1 CD in order to upgrade beyond 7.0.

By the time I was done using Red Hat, I was very annoyed that I had to either seek out a new physical installation media or somehow hack Red Hat's servers every time I wanted to upgrade. I could have gone down the same DIY route that I had with Slackware, but only to the same ultimate heat death that I'd had before.

I was also very frustrated with having to manually resolve RPM dependencies, especially since there was no self-consistent collection of packages available. What had seemed like such a neat and tidy packaging system in the beginning turned out to be a snapshot in time of Red Hat's development distribution, rawhide, with only the worst packaging issues resolved. There were still dependency issues in Red Hat's packages, some of which were forcing me to do things like use Sendmail, when Postfix was what I wanted. In some cases, the only solution to the dependency problem was to rebuild my own modified SRPMs and install the resulting binaries, which led to more dependency hell down the road when my own packages clashed with newer packages that I was trying to install. It was very much like a pure unpackaged DIY source upgrade in many ways.

I had long since stopped using linuxconf because it was too limiting. I came to the conclusion that it wasn't linuxconf's fault, but rather that the limitations were inherent in GUI configurators. Specifically, I think that most configuration files for mature software are capable of expressing a much wider variety of configurations than can be encapsulated in any GUI configurator. The problem of designing a fully expressive GUI is therefore intractible.

Tom's RTBT (sometime in 1999)

At school, I had magnetic card access to vast hardware resources in the form of computer labs. It was 1999, distributed.net was in full swing, and every one of those lab machines had a floppy drive which the BIOS still used as the first boot device. This was a situation which desperately called for a Linux distribution which would load itself off of pocket-sized media completely into memory and then run with the media removed and the d.net client running. Tom's RTBT delivered this capability in fine form, and that's all I cared about. I wouldn't dream of using it today, though, as there are far better options now than 3.5 inch floppy disks.

Mandrake (sometime in 2000)

While I was using Red Hat, I tried Mandrake 8.0 once on a borrowed piece of hardware. It had that same GUI configurator problem as Red Hat, and on top of that the packages were not very well tested and the Mandrake collection was even less consistent than Red Hat's. I only used it for a couple of days before it was clear that Mandrake was a step backward.

Debian (2001 and beyond)

After I gave up on Red Hat in the summer of 2001, I managed to do a net install of Debian potato over dialup. Not only that, I did it by shoehorning the Debian package manager onto the Red Hat system and then convincing it that my Red Hat system was a very strangely configured Debian system. This was very similar to the trick I'd used to go from Red Hat 6.2 to Red Hat 7.0. Aside from the painfully slow and awkward start, I have had very few and very manageable problems with Debian, even through major upgrades, and I have installed Debian on many systems since my first Debian installation in 2001.

With my Debian system, I chose to stick with the precompiled Debian packages from the Debian collection. I have come to fully appreciate how that choice has made updating and upgrading simple. My experience with Slackware had taught me that in the absence of central management, upgrading from source is the low slow road to hell. And my experience with Red Hat had taught me that having to resolve packaging issues on account of an inconsistent packaging policy is the high slow road to hell. Sometimes I have to wait for the Debian project to package new software, but I consider it a fair trade off for not having to try to do a good job of it myself. I have also recently found that backports.org does an outstanding job of supplementing the stable version while sticking to the Debian package policy on points not related to timelines and releasing.

Debian takes the approach that it sets defaults, not standards, when it comes to choosing things like configurators and MTAs. There are GUI configurators, but they can be safely ignored. Sendmail is an option, not a mandate, and to the credit of the Debian Project, it isn't even the default. This defaults-not-standards approach is used in every instance where the open source community has produced competing pieces of software which cannot coexist on a single system.

Debian is my distribution of choice and I expect to continue using Debian for the foreseeable future.

LNX-BBC (2002-2004)

I worked on the LNX-BBC project for a while, during the 2.0 and 2.1 releases. It's a live CD distribution, in the same spirit that Tom's RTBT is a "live floppy" distribution. While I worked on the project, it was exciting to be building a system for building an operating system, but I was in it for the process and not so much for the product. I rarely actually used the distribution that I was working on, although it was very useful when I needed it and I still carry one. Suffice it to say that as a distribution, the LNX-BBC is minimalist, but still very versatile. It's a whole lot of Linux for that form factor. It is, unfortunately, unmaintained at this point.

Gentoo (sometime in 2003)

About a year after Gentoo became available, I tried to install it on a spare machine. I followed the online directions to the letter and the installation failed with a compile error. I gave up on it. I have also since learned that this is typical of Gentoo's QA.

OpenWRT (2005 and beyond)

I use OpenWRT on Linksys WRT54G and WRT54GS hardware. It has the minimalism of LNX-BBC and the package management similar to Debian's using ipkg. It's definitely a lesser distribution, but that's sort of beside the point and to be expected. It's a distribution for an embedded device after all, and the whole point is to make your commodity router hardware more flexible. In this respect, OpenWRT is leaps and bounds ahead of the stock Linksys firmware, but still has a lot of room for improvement. I expect to continue using it.

Finnix (2006 and beyond)

Finnix is a live CD distribution in the mold of Knoppix or LNX-BBC. I've used it a few times as a rescue platform for ailing systems, which is its main purpose. I've been pretty satisfied with it every time. The array of admin tools available on the disc is damn near complete and very nearly state-of-the-art. I will continue to use it as my rescue live CD of choice.

mail me