Mroodling while picking linux flavor for my new server

The time has come – I am replacing my server with all its websites with a bigger better meaner machine. This time around I decided to make it Linux: original machine runs Windows 2003 Server OS and I do not like how two-three simultaneous PHP sessions effortlessly max out CPU.

Also, I am making conscious decision to migrate into the open source world. It started maybe three or four months ago: I got excited with Python and as result converted my laptop to Fedora as experiment. Reality exceeded my expectations: for programmer, linux is heaven.

But we digress…

Here is brief overview of what I learned about different Linux flavors.

There are two major families: Red Hat based and Debian based. After that, there are Mandriva, PCLinuxOS, SUSE, and some other popular stand alone distributions. I am going to summarize “family” distributions only.

Red Hat family includes Red Hat Enterprise Linux, or RHEL (you have to pay for it – out of questions for a freelancer), Fedora (desktop oriented community developed), and CentOS (server optimized installation; in reality – recompilation of RHEL source code without Red Hat branding).

Debian family includes Debian itself (commonly picked for server installs) and Ubuntu (to maintain the parallel with RH we will call it predominantly desktop OS even though both Fedora and Ubuntu can be successfully deployed as server installations and Ubuntu even releases separate server edition iso download).

Here are two major differences between families.

First difference: package management: yum vs apt-get. While both managers have similar functionality their repositories differ significantly: as of this writing (10/29/09), “yum list | grep wc -l” for default repository on Fedora 11 returned 15,000+ matches while Debian/Ubuntu repositories presumably know the number of packages in the range of 22,000-25,000. CentOS looses to its peer Debian quite dramatically: it seems to have just 6,000+ packages. Also, apt-get seems to be significantly faster – but I did not have a chance to experience it first hand just yet.

Second difference – for desktop distros: Ubuntu seems to cater towards regular user. As result, it provides more convenience in the form of UI tools (so I’ve heard). As a flipside, for heavy developers it sometimes can be a hassle to get to the actual work domain and perform no-nonsense coding (once again – so I’ve heard). Fedora on the other hand is more raw and actually more unstable due to the fact that it employs cutting edge barely tested packages: I had it crash on me four or five times between reinstalls until I learned not to “yum” every piece of junk that came to mind :-) but it does let me get right to the piece of code I want: with Red Hat heavily relying on python I feel reasonably confident that all modules that I may ever need are already in repository.

Both these differences are quite minor in my opinion: I find it hard to believe that anybody would notice difference between 15,000 amd 25,000 packages unless they are really into some specific stuff. Also, I cannot imagine being unable to apt-get eclipse with python plugin or find some exotic module if push comes to shove, therefore I believe we should agree with common consensus: pick a distro that you know and most comfortable with for your purposes – it’s all linux after all.

Historically, I come from Red Hat background: had to deal with this OS at work when inherited a machine about eight or so years ago. This was the original reason why I put Fedora on my laptop. As such, here is the plan: I’ll keep Fedora for my laptop, will put CentOS on my server (6,000 packages is hardly a limitation: I just need LAMP (Linux + Apache + MySql + PHP)). I also am going to put Ubuntu on my son’s desktop: for him to get the idea that there is world beyond Windows and for me to play around with what seems to be the most popular distro of Linux.



You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.