Why I am in love with Debian

Submitted by Rollie Hawk on Tue, 2005-11-01 04:49.

Ever since my initial exposure to Linux in the mid-90s, I've tried nearly every distribution I could get my hands on. Whether it meant spending cash for expensive boxed editions or putting my 33.6 kilobaud modem under days of stress to obtain CD images, I was always looking for another one to try out. But nothing ever seemed the perfect fit for my needs.

In all these years, I've been through my share of Linux installs. In fact, my office is absolutely littered to this day with outdated CDs containing and books covering Slackware, RedHat, Mandrake, SuSE, Caldera, and all of their assorted spin-offs. While I've used Linux distros in a variety of server solutions, I've never found one that I was comportable enough with to consider making it my primary operating system on my laptop and workstations.

At least, that is, until I met Debian.

Over the last few weeks, I've found myself going from tinkering with Debian to using it almost exclusively. I'm sure this is partially a result of my growth in computing and my current skill level, but I know it is more than that which has made me fall in love with Debian. A large part of my switch to Debian is that a few specific traits available in other distros are found in the right combination for me in Debian. If you give it a shot, I think you may find the same is true for you.

Flexible installation

With most of the Linux distros I've installed, there is a single way that installs are performed. Sure, there may be options for a console-based of GUI-based installs, but the location of the sources tend to be more limited. Some distros install from CDs, some install via FTP, and a few give the option of installing from somewhere on your local network.

With Debian, your choices include all of the above. You can even use different combinations of them by editing /etc/apt/sources.list. If you only have the first install CD, you can install using that as your primary source and then use the Internet to grab the rest as needed (more on that later).

Speaking of the Debian install CDs, you only have to have the first one. The way Debian CDs are arranged is that the more popular a package is, the higher up it goes in CD order. That means that for most installations, you only need the first one.

You don't even need all of that, in fact. If you plan on doing an install from an FTP or HTTP server, all you need is a smaller Internet install CD that takes around 150 MB of space and downloading time. From there, you proceed through the installation as though you had the CDs right there (although slightly slower, depending on your connection speed).

Maybe you don't want to mess with that and just want to buy a CD. That's fine, too. You'll especially appreciate the fact that you won't be paying $50-$100 for some fancy Debian box and user's guide. Rather, you'll probably be paying around $5.

Easy package management

Package management is often the bane of would-be Linux users. Most novices can stumble through the installation of most recent Linux distro versions, but they often get stuck when it's time to install applications or drivers. Because of that, package management can be the single most important do-or-die aspect of a Linux distro. Even if a new Linux user can manage to install software from the command line, he or she is likely to become frustrated once that wretched beast known as dependencies raises an eyebrow.

That in mind, Debian has by far the slickest Linux package management tool I have ever seen. It's called the Advanced Package Tool (APT) and actually does more than merely manage packages for you. More specifically, APT locates, retrieves, and installs the software for you (handling dependencies along the way). Surprisingly, all that takes is typically a couple lines of shell commands.

For a demonstration, let's say we're at a loss for a program to edit icons within Debian. We start out by using apt-cache to search the sources listed in /etc/apt/sources.list for icon editors.

The following shell command

lineman@laptop:~$ apt-cache search icon editor

results in this list:

apwal - icon-based floating application launcher with transparency
babygimp - An icon editor in Perl-Tk
kdegraphics - KDE Graphics metapackage
kiconedit - An icon editor for creating KDE icons
lg-issue30 - Issue 30 of the Linux Gazette.
pixmap - A pixmap editor
toolbar-fancy - Fancy toolbar for XEmacs21
wm-icons - Themed icon set that is Window Manager agnostic.

So let's say I decide to go with babygimp. The installation goes something like this:

lineman@laptop:~$ su
Password:
laptop:/home/lineman# apt-get install babygimp
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
perl-tk
The following NEW packages will be installed:
babygimp perl-tk
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 2664kB of archives.
After unpacking 9302kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://http.us.debian.org stable/main perl-tk 1:800.025-2 [2446kB]
Get:2 http://http.us.debian.org stable/main babygimp 0.41-7 [218kB]
Fetched 2664kB in 36s (73.2kB/s)
Selecting previously deselected package perl-tk.
(Reading database ... 101238 files and directories currently installed.)
Unpacking perl-tk (from .../perl-tk_1%3a800.025-2_i386.deb) ...
Selecting previously deselected package babygimp.
Unpacking babygimp (from .../babygimp_0.41-7_all.deb) ...
Setting up perl-tk (800.025-2) ...
Setting up babygimp (0.41-7) ...


laptop:/home/lineman#

All that and in less than a minute (and after executing just a single command) we have babygimp and all it's dependencies installed and ready to roll. Now you may be wondering, as I did, how easy it is to update packages installed in this way. I'll get to that soon enough.

As “open source” as you want it to be

Sometimes it's easy to assume that everything that comes with a Linux distro is free, as incorrect as that may be. Perhaps it didn't cost you anything, but some of the software may not be “free” in the intellectual sense. The politically correct term for such “free” software is now “open source,” but the developers of Debian understand that they actually refer to the same thing.

If you want to be an open source purist then you can expect Debian to respect your wishes by default. But if you don't mind installing additional software and don't care if it's been GPL'd or not then you can still use it on Debian and APT will even install it for you. All that is required is that you add the following lines to /etc/apt/sources.list:

deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

Now let's say you want to be slightly more cutting-edge than the average user. Maybe you want to use packages still in the testing phase. If that's the case, you'll want these two lines included:

deb http://http.us.debian.org/debian testing main contrib non-free
deb http://non-us.debian.org/debian-non-US testing/non-US main non-free

If that isn't bleeding-edge enough for you, then you can even go with unstable packages with these sources:

deb http://http.us.debian.org/debian unstable main contrib non-free
deb http://non-us.debian.org/debian-non-US unstable/non-US main non-free

Upgrades in just two lines of input

I alluded to updates earlier so I think I'll give a demonstration of how easy it is to update Debian. First, as root, I'll update the package list.

laptop:/home/lineman# apt-get update

Next, I'll update all the installed packages with intelligent handling of dependencies.

laptop:/home/lineman# apt-get dist-upgrade

That's it. Done. Impressive, huh?

Debian's social contract

One of the things that scares many of us from a particular Linux distro is the knowledge that if the distro becomes too popular, it may start forgetting to be fiscally free (I'm looking at you, RedHat). Either that or users end up doing free beta testing (I'm still looking at you, RedHat). Personally, if I'm going to have to pay for newer versions or even upgrades I'd just use Microsoft or Apple software, respectively.

Debian's social contract is one of the initial reasons I decided to consider it. Debian is free in every sense and always will be. They have a few other points in their social contract, but that is arguably the most fundamental one.

Conclusion

There are plenty of Linux distributions out there and what features are the most important will vary with each user. If you find the aspects of Debian I noted above interesting, I encourage you to give it a try. Debian isn't for everyone, but I can proudly say it's perfect for me and you just might find it's the right fit for you if no other distro has caught your eye.


( categories: Articles | Operating Systems )
Rollie Hawk is a consultant, web publisher, online personality, magazine writer, web developer, network administrator, teacher, husband and father residing in southern Illinois. He graduated in 2002 from Southern Illinois University, earning his BS majoring in math with a minor in chemistry.

Rollie is a certified math teacher with endorsements in chemistry, physics, and physical science and has taught students of all age groups and abilities, ranging from grade school to the university level. In addition to math and science, he has also taught GED, job skills, and alternative high school classes (his personal favorite).

After the birth of his daughter in 2004, Rollie decided to spend more time at home. This meant leaving his teaching position and devoting his working hours exclusively to consulting, web development, and general IT work.