Linux Install Marathon Followup
August 23, 2011
Recently I have been trying out various distributions in parallel, following up on the plan presented in “Linux Install Marathon”. However, as is obvious, I did not follow the plan perfectly. Reviewing my stance it appeared that there’s another dimension to the question of which distribution someone should use. Here I will make a sweeping generalization and classify users into two main groups: (1) those who want to learn more about their Linux; and (2) those who want to manage their Linux as means to a goal of running one or more applications. There’s evident difference between these two classes of users. I would include hobbyists in group (1), home and work users in both groups (1) and (2), and individuals and enterprises needing server ecosystems in group (2). I consider myself a part of both groups equally but recently, due to time and other constraints, I have been 75% in group (2) and 25% in group (1). This is the reason why I am trying out different distributions in parallel instead of trying them out one at a time for a certain period of time.
If you need to run certain applications on “Linux”, then you should approach distributions asking this question: how do you, compared to another distribution, make it easier for me to run this application? Now there are two general types of applications: (a) need to be updated in a short span; and (b) need to be updated over a longer period of time. If your application is in group (a) then a distribution that provides regular, short-term updates/upgrades might be more suitable. And if your application is in group (b) then a distribution with a longer life-cycle might be more appropriate.
Usually you would not be running a single application. There’s a whole ecosystem that you need to run any given application. For this reason, you need to prepare a list of all needed applications and compare each distribution against this list. No distribution will be 100% compatible with your list so this is where you need to change tactics again. If two or more distributions in the same family can cover all (or most) of your applications, then this is the best scenario. However, sometimes distributions from different families will cover your needs better. This is when you have to make a decision on whether you want to compromise on your chosen applications or you want to dive in to diverse distribution families.
The first step in determining if a distribution will make it easier for you to run an application is to check whether the application is provided as a package. This package could exist in an official, semi-official, or non-official repository. If it doesn’t exist in an easily installable package, first look at another distribution. If you really want to use the current distribution, and do not want to explore another, then check if the distribution makes it easy to compile and install the application.
Let’s take the example of bug tracking applications Roundup Tracker, Bugzilla, and Request Tracker. By using aptitude, urpmi, yum, and zypper, I looked in various distributions (Fedora, Debian, Ubuntu, Mageia, PCLinuxOS, and openSUSE) if packages were provided for them. The results were thus: Roundup Tracker (Fedora 16, Debian testing, Debian stable, Ubuntu 11.04), Bugzilla (Fedora 16, Debian stable, Mageia 1, Ubuntu 11.04), and Request Tracker (Fedora 16, Debian testing, Ubuntu 11.04). Within the same class of applications, some of the handful of distributions I tested provided packages.
But just one class is not enough for me to make a decision. Let’s take a look at another class: web servers. I tried nginx and Apache 2 and results were thus: nginx (Fedora 16, Debian testing, Mageia 1, openSUSE 11.4, PCLinuxOS 2011.07 KDE mini, Ubuntu 11.04) and Apache 2 (Fedora 16, Debian testing, Mageia 1, openSUSE 11.4, PCLinuxOS 2011.07 KDE mini, Ubuntu 11.04). In this class of applications, all distributions I tested provided packages.
This is where you get a better idea of which distribution to keep in your prospective list and which one to dump. Continue doing this for all classes of applications and all applications in these classes that matter to you. You will come to a conclusion on which distribution is best suited for the kind of work you want to do.