I have been struggling with my conscience recently over using Ubuntu as a server. From a technical perspective, it’s an excellent choice. It has regular releases, can be both stable and cutting edge, has thousands upon thousands of packages, supports a lot of hardware, has a very pragmatic approach to enterprise server requirements, and much, much more. With all these benefits Ubuntu has been a favorite of mine for a long time. But recently I have been thinking more philosophically.
At its very core Ubuntu is still Debian. Without Debian, Ubuntu would lead a very crippled life. A vast majority of packages in Ubuntu have their origination in Debian. They would have a huge hill to climb if Ubuntu were to start managing all packages themselves. For Canonical this would be a huge cost to bear and for the Ubuntu community a huge task to manage especially when they are poised to take Ubuntu to the masses. This confirms for me the fact that Debian needs to successfully exist for Ubuntu to survive (in the short term) and prosper (in the long term).
I’m really not concerned with the hoopla surrounding Unity because it’s an admirable goal for Canonical to push Ubuntu to form factors other than desktops and servers. I may not like the decisions but I want to support the idea behind them: make it easier for organizations to use and support an open source GUI. Just want to make clear that Unity has nothing to do with this post.
Where does Debian fit in today’s ecosystem? They are not jumping on the cloud bandwagon, they haven’t made systemd default yet, GNOME 3 is slowly coming to Testing, etc. They are still the strong, stable, dependable distribution they always have been. This stability makes Debian an excellent OS for server use. But not all servers need older and well-tested versions of applications and libraries; some really do need the latest and greatest. Here come the advantages provided by apt pinning: you can choose to use newer versions of some packages while keeping the rest of the system at the stable version.
More than anything else, it’s the independence of Debian that’s attractive. Sure you won’t always get a stable release every two years. You won’t see Debian pre-installed in your Cisco server. But what you do get is a product above the influence of corporate interests. Debian is truly a community-managed product and one person’s vision (good or bad) doesn’t derail the vision of the community. There’s no possibility of a corporate entity being bought by an anti-Linux entity and then the hard work of free and open source developers being used against them.
I believe in this hostile environment where patents are being used as weapons and shady deals are being forged to undermine the Linux movement (and the greater open source and free movement), independent Linux distributions need to be supported. I count Debian and Mageia as two really good examples of independent distributions and ones I would support as best I can (at least by using these products and not others).
Although there are tons of differences between Debian and other distributions, I’ll try to list some significant differences (in my view) so others who are looking for a distribution have another point of view when making a decision.
Ubuntu: It seems to be too reliant on Canonical for its existence; if Canonical doesn’t exist, Ubuntu will be crippled. Then Canonical has a policy of copyright assignment that just doesn’t sit well with me.
Fedora: It’s direction is independent but when a user wants to move up from using Fedora as a desktop to RHEL/CentOS on the server, the number of available packages shrinks dramatically. Thus servers have to rely on other repositories like EPEL and IUS.
Linux Mint: They are doing great work on the desktop but their recent announcement that “It won’t only be down to donations and sponsorships anymore, your activity on the web, every search query you make and product you buy will help fund our project” makes we wary of the long-term community-vibe of this project. It’s still a few developers working on a distribution and although the community has a lot of say in its direction, it’s still a long way off from being truly community controlled.
openSUSE: I tried openSUSE 12.1 for a few hours and absolutely loved it. It’s a very polished distribution and has some nice features missing from other distributions. But I still can’t get over the fact that it’s still at the mercy of corporate interests, be it Novell or Attachmate. If an independent openSUSE Foundation ever comes to fruition and the community controls the project then I would certainly support and use it more.
Mageia: I have used Mageia 1 and it’s a very good distribution. But it’s still in its infancy. Many of the packages I would like to use (e.g. Python 3, Virtualenv) were not included in the first release. I have my eyes on this distribution and will certainly give it another try when they release version 2.
PCLinuxOS: I am pretty much ignorant when it comes to PCLinuxOS. I have used it for a few hours here and there and liked it. It’s focused on creating a good desktop distribution so immediately I know that they are not a good choice for a desktop and server ecosystem (within the same distribution). Plus I can’t figure out if it’s a small team of independent developers or a corporate entity backing it.
In short, I think I use Debian because it’s not only a great product for my use cases but also independent. It has the stability of Stable, newness of Testing (plus I feel like I’m contributing to the next Stable by using Testing), and cutting-edge-ness of Unstable. I can use free software only or I can taint it with non-free codecs, drivers, applications, etc. I can use the Linux kernel or the kFreeBSD one (although I have never tried it in real life). So a user has many choices within the same distribution. When Debian says it’s a universal OS, these developers and packagers work really hard to mean it.