Linux – Choosing a Linux distribution

linux-distributions

Dangerous territory with this question so please try to be impartial and instead focus on what to look for when choosing a Linux distribution.

I'm completely new to Linux. I thought it'd never happen but I need to have a Linux box to play with and I have a spare fanless Atom PC (32-bit only).

I'll be using the machine as a non-commercial hobby server, the trouble is, I don't even know how to compare Linux distributions and why people pick one over another.

If anything, I want to have an easy install from USB stick.

My question is: what do you look for when choosing a (free?) Linux distribution for a server?

If you can, please explain what sorts of things actually differ between one and another without saying which you think is better, just the facts.

The way I see it, Linux as a server is just an SSH console and I find it hard to imagine what could be different between one and another.

Best Answer

Since you mention specifically for a server, I would suggest the following go into the decision process:

  1. Stable vs. Bleeding Edge Releases

    There are a lot of folks that love "Bleeding edge" releases (such as ArchLinux or Fedora). What that means, however, is that they are essentially the continual Beta Testers for Linux releases. Of course, there can be benefits to this thought process for certain applications. The other end of the spectrum would be Debian with only stable releases (unless you're in the Tumbleweed sub-set). The cycle is slower to be pushed through. Even a step below that would be OpenSuse, at least in my experience. The repositories had old stable versions of software (example: Python 2.4.3 when 3.2 came out and 2.7 was the standard stable).

  2. Package Manager

    This seems to be the #1 thing I read about when I research Distros. Everyone claims to have an "advanced and powerful" package manager. When it comes down to it, many of them are fairly similar.

    Most have some sort of search function and the majority resolve dependencies for you, which would probably be very helpful for you just starting out. For a headless server, you would probably want one with good search functionality. (Anything Debian based would be aptitude <searchname> Arch's pacman is pacman -Ss <searchname>, etc.)

    Additionally, over the past several years - various releases have been rolling out GUI managers. (Ubuntu's Software Center, Mint has a version, etc.)

  3. GUI - Though this is semi-moot (or fully on a headless server).

    Another item would include the preferred GUI (Graphical User Interface). The classic two are KDE and Gnome. However, there are many forks of Gnome now. The reason I say this is semi-moot is because you can change this on any distro relatively easily. Other options include Openbox (lightweight, fairly advanced), Mate (Gnome2 Fork), Cinnamon (Gnome3 re-mix), Unity, LXDE (lightweight, Gnome2-esque), and XFCE - of course there are others but these are the main players.

    As a server, you could do a text based install (which shows a "GUI" using NCURSES in the terminal.) Most distros feature a text-based install.

  4. The community

    Linux can be tricky at times, and it is extremely helpful to have a community behind you when you hit issues. While the Linux Kernel is mostly standard across the same kernel version, the way the Distro handles it may be different. So an active community wiki and commonly discussed distro is helpful.

Those are the first major things I can think of for you. Add in the obvious idea that you probably don't want to build from scratch (yet).

In a server application, under the above specifications - I would suggest Debian as a server. Another fairly good option (with a smaller community) is OpenSUSE - however, I didn't like Suse on my server.

Distrowatch may be a fairly good resource to give you a list of too many distros. Just note most of them are based on another (such as: Mint based on Ubuntu, A few based on Debian, and so-forth).

Edit All are easy to go onto a USB to install from. You could use Unetbootin or Multiboot

Related Question