My views on the choice of Linux distribution
I have tangled and complicated feelings about the choice of a Linux distribution for myself and about the idea of changing distributions. So today I feel like trying to run down some of the complexities at play.
In more or less point form, because it's easier that way:
- Given that I use a basically completely hand-built custom environment
(I compile my own copy of fvwm, for example), in theory I'm
basically indifferent to the actual Linux distribution or even
Unix OS that I'm using. The out of box look of a distribution is
basically irrelevant. This sounds like it should make switching
easy (even all the way to eg FreeBSD).
(I don't even use a graphical login manager, so I wouldn't notice gdm or lightdm or xdm or whatever configuration differences.)
- However, setting up a highly custom environment that actually works
takes a lot of effort because many of the desirable pieces of a
modern desktop environment are neither standardized nor documented.
Working audio, working automatically mounted USB memory sticks,
fully working Gnome and KDE programs, all of that takes work, is
at least somewhat different between different distributions, and
is fragile. This creates a serious disincentive to switch
distributions or Unixes once I have one of them working.
(Having a fully hand-built custom environment makes this worse, since I expect to see basically no difference in my actual environment.)
- My actual environment is not just my desktop. Instead it
encompasses a bunch of things like heavily VLAN'd networking, a
GRE tunnel with IKE, policy based routing,
a webserver, ZFS on Linux with bind
mounts and so on. Most of these parts of
my machine are distribution dependent, because no one has
standardized this sort of system level setup. Switching Linux
distributions thus involves re-engineering at least some of it,
if only to account for things like drastically different ways
of configuring daemons.
- Some of the elements of my custom environment have to be (re)built
as system packages, which means that I wind up caring about how
easy it is to patch and (re)build packages. I have wound up with
strong opinions on this for RPMs versus .debs (cf) and I'm likely to wind up with equally
strong opinions for any other packaging system. On top of that, I'm
already quite familiar with building and working with RPMs;
anything else would have to be learned, adding to the cost of
I'm not going to say that you can't have a better package format than RPM, because RPM sure has problems. But I do think it's very hard to beat right now and most package formats are going to fall short.
- As a sysadmin, I have fairly strong opinions on right and wrong
ways for the overall system to be structured and managed. Normal
people would just ignore all of this, as it's not directly relevant
to my custom desktop or the overall custom environment, but I
care and so different distributions (or Unixes) have under the
surface differences for me. Switching is guaranteed to give me
exciting new things to be irritated about (as opposed to the old
irritating things that I'm already familiar with).
(There is also the simple mechanical issue of getting familiar with sysadmining a new distribution or OS. This always takes time and work.)
The overall effect here is to make switching much harder and far less attractive than it looks on the surface. At this point I am far less likely to someday switch to something than to someday switch away from Fedora, and I have a lot of reasons to hope that that day is a long way away (because it would be a pain for probably very little practical gain).
As a corollary, at this point I'm not sure what a Linux (or Unix) could do to get me to switch to it. Everyone is packaging more or less the same upstream open source software and it seems really unlikely that a distribution is going to magically achieve stunning and compelling packaging and system management.
(There certainly was a time when there was a real difference between Linux distributions, but major ones strike me as pretty close now. For example, Debian, Ubuntu, and Fedora are all pretty up to date, all have pretty good package selections, release pretty frequently, and so on.)