Part 1: Finding the Right Distro
We are certain that many of you want to try Linux to see what it is like, but have no idea where to start or how to get into it. This article is the first installment in a four-part guide that will gradually introduce you to the Linux environment and how to adjust to it if you are a new user.
One of the hardest things to do while starting out is finding a distro that is right for you. Many users try several before settling on one of two that they really like. Once they find a distro that feels right, they are often reluctant to switch unless the distro becomes unsuitable for their needs for whatever reason.
In most instances, choosing a distro ultimately comes down to several factors:
Arguably, the most important factor in choosing a distro is your general level of experience with Linux. Not all distros cater to the same intended user audience. Some (like Ubuntu) are designed to be more accessible to novice users while other distros have a greater learning curve. Distros like Gentoo or Slackware are not necessarily meant to be “harder” than Ubuntu; they simply work out that way because they are less automated and often sacrifice ease of use for the greatest possible user control or system transparency. Many advanced users know what they are doing and prefer doing things their way.
Distros that emphasize ease of use tend to get in the way of such people and impact their productivity. However, not every advanced user feels this way, since there are plenty who prefer to focus on actual work rather than worry about every nuance of their operating system. A user who prefers a less user-friendly distro is not necessarily a “better” or “more skilled” Linux user than someone who uses something more beginner-friendly even if they have a lot of experience. In the end, it comes down to individual preference and choice, and Linux is able to give people from both extremes (and everyone else in between) what they want.
In your situation, you should focus on where you are in your Linux experience and choose accordingly. If you have never used Linux before and choose something like Gentoo, you are probably going to be confused and frustrated very soon after starting. If you are coming from a Windows background, you will probably need an environment that is familiar to what you are used to and has a well-rounded software library that will help you gradually adapt to your new computing environment.
For such an individual, we would recommend something like Ubuntu (due to its large software library, ease of use, and large community of people who can offer assistance) or Mandriva (due to its tools that help Windows users migrate).
However, if you are a well-established Linux user and are feeling adventurous, you should feel free to try something more expert-oriented because it will teach you more about how your computer works behind the scenes and will make you more versatile. Alternatively, you may feel satisfied with what you have because it fits you perfectly and you wish to stay put. There is nothing wrong with that, either.
In addition to skill level, Linux distributions are also differentiated by purpose. Some (like Mandriva, OpenSUSE, and Ubuntu) are pre-configured to be desktop distributions (although some of these have a server-oriented variant) while others (like CentOS) are server deployments. A few distros (like Debian) may even be considered neutral and are suitable for either purpose depending on how the user configures them.
Desktop-oriented and server-oriented distros usually are not interchangeable without a great deal of trouble. You may be able to get away with implementing server functionality on a desktop distribution. While doing this is not difficult, it is often a waste of time and effort since other distros come with such functionality out of the box. However, there are exceptions to this rule; many programmers build hybrid systems to assist in application development. (this allows projects like web applications to run locally) However, these systems are seldom used outside of a test/development environment and should never be considered for production use.
Server distros are much less flexible, since they simply lack much of the hardware support that is common in desktop distributions. Awhile back, we had extensive trouble getting anything better than 800x600 VESA (bare-bones graphics, forget about any 3d acceleration) in CentOS 5.2 during a test run. In contrast, Ubuntu supported our monitor's native resolution (1440 x 900) out of the box on the same machine and 3d acceleration was working after we installed the NVIDIA driver.
Graphics are typically not a big issue on servers since many system administrators run their servers headless (without a monitor) anyway, but graphics support like what we encountered with CentOS would be absolutely brutal on a desktop distribution. Finally, desktop distros include many packages that server distros just don't need (like games, office suites, media players, etc.) This just adds bloat to the system without providing any benefit. Ideally, servers should run as lean as possible, since any resources needlessly used by the operating system are not available for the server's intended functions.
Server distros usually emphasize long-term stability (a result of being loaded with older software that has been more thoroughly debugged) whereas desktop-oriented distros tend to be more cutting-edge with newer packages. (but may be more unstable as a result) These two options are often mutually exclusive, so choose which one is most important to you.
Before setting up a system, you should weigh out all the possibilities of what it will be used for. If you need a server, you should choose a distribution like CentOS, Debian, or SME Server. However, if you need a desktop, choose one of the many desktop-oriented distributions. (Ubuntu, Mandriva, Fedora, OpenSUSE, etc.) If you need a hybrid system, start with a desktop distro and install the server functionality you need. (modern package management makes this easy)
One of the most fundamental differences between distributions is how they manage software packages. For those new to Linux, software installation is handled differently than in Windows. Instead of running a setup.exe to install new software, software installation is a fairly modular process. Programs are distributed in one or more “packages”, and each package either contains parts of a program or its dependencies. (other components that a program needs to run) Once all packages needed by a program are installed, the program will be able to be used.
Package management with Ubuntu (apt-get)
In the old days, package management was either nonexistent or a very tedious process where each user had to locate packages all by himself or herself from a variety of different sources. (Some distros still do things that way, however) Packages were (and still are) very version-specific, so users often had to hunt down a specific version of package from an obscure corner of the internet to get a program to work. Fortunately, several automated package management tools were created to help solve this problem, and the tools now do the hard parts for you.
Package management with Mandriva (urpmi)
Many users swear by a particular package management tool. Each one has its own distinct advantages, disadvantages, and quirks, but they all operate in much the same way. Package managers automatically locate all packages needed by a program, download them from one or more central repositories, resolve all dependencies for you, and then install/configure the program.
You must become familiar with the package management tool included in the distro(s) you are interested in using. To facilitate this, we have provided you with a brief list to cover the most common package management tools and some of the distros that use them. Although this list is not fully comprehensive, it will help you get started. We cannot tell you that one package manager is better than another, since such things are largely a matter of opinion.
|Advanced Packaging Tool (apt-get)||
Debian, Ubuntu (and its variants), gOS, Linux Mint, Sidux, Knoppix
Fedora, CentOS/Red Hat Enterprise Linux
Each distro has a large repository for the package management system to use. Some repositories may be more complete than others. Remember that that while many distros use the same package management tool, packages should not be shared between distributions. (don't mix Ubuntu and Debian packages, for instance)
Package management with OpenSUSE (Yast)
It may be tempting to install a package from another distribution when you need a package that is not in your distro's official repositories, but such shortcuts often lead to problems. However, if your distro is popular, someone else may have set up an additional repository that has exactly what you need.
The key to finding the right distro is experimentation. Each distro has a slightly different feel, and it may take several attempts to find one you really like. Virtualization software makes it easy to test several different distros at once with minimal risk. The next installment of this series will walk you through the installation process and will also tell you how to prepare a dual-boot system.