Why I use Slackware Linux

This post is a bit more technical than my usual blog entries, but it doesn’t really fit over at my programming blog, so I’m going to post it here instead.

History

I started messing around with Linux back when I started my undergrad. I installed Ubuntu (a distribution of Linux more geared toward end users) on my then state-of-the-art Toshiba laptop. Things worked okay, but I could never fully make the plunge: I used a lot of Windows-only software for my day-to-day tasks: Visual Studio for my programming assignments, Office for my documents, etc. I would always find something I missed and run back to Windows with my tail between my legs. In retrospect, Visual Studio was total overkill for all of my programming assignments, and MS Office is not a very good note-taking tool (well, One-Note is pretty good, but nothing beats putting pencil to paper.)

Then one day, for some reason, I just decided to take the plunge. I challenged myself to use Linux solely on my laptop for three months. It was tough for the first while. I had to get used to using a new operating system, plus new applications, but after the three months were up I was hooked :)

I took things a little further after that, installing Arch Linux (a more advanced distribution) over Ubuntu. My goal was to learn more about how Linux worked under the hood, and I achieved my goal! Arch does a lot less hand-holding than Ubuntu does, so I was forced to do a lot of tweaking and hacking, editing config files by hand, installing software manually, and all that fun stuff. I was addicted to how much control Arch Linux gave me :)

Fast forward a while. I’ve messed with many different distributions, as well as FreeBSD, (a Unix-like operating system with a very rich history) but I finally settled on my current distribution of choice: Slackware.

Why Slack?

Slackware prides itself on being “the most Unix-like Linux distribution.” Slackware is a very simple system from a design perspective, but it takes a little care to maintain it. A few things that I enjoy most about it are:

Packaged software is rarely edited

Some distributions like Debian and Ubuntu occasionally make changes to “upstream” software. For example, Debian changes the default locations of the configuration files for the Apache server software. Therefore there are at least two ways to customize Apache: the Apache way, and the Debian way. If I want to modify Apache on Slackware, I can just read the documentation on the Apache website.

Slackware is very simple to set up

Setting up Slackware on a disk is very easy, since there are no hidden gotcha’s. Setting up Slackware is as easy as the following: 1) Setup your partitions with fdisk (or cfdisk) 2) Run the setup script and follow the instructions. Once you’re done, you have a nice clean working system ready to be customized. For me, customization usually just includes making a user for myself “bryan” and installing the video driver I need. This is of course probably not as easy for a beginner to perform, but for a Linux user for some years now, installing Slackware is a very hassle-free task.

Installing custom software is also very simple

If I need some software that isn’t included in the default Slackware installation, I search for it on Slackbuilds.org and install it. If it doesn’t exist there, I download the software and install it manually, just like what I would have to do it I were running Windows.

Slackware isn’t a rolling-release distribution

Certain distributions like Arch Linux and Gentoo use a method called “rolling release”, whereby you can update your entire system with a single keyboard command. This is a good thing for those who like it. I prefer to update my software manually. If a new version of some software requires another piece of software in order to run properly, I prefer to install that new piece of software myself instead of letting a program automatically do it for me. I enjoy knowing exactly what is installed on my machine at any given time. Either the software was installed by default from Slackware, or I installed it myself. There are no other cases.

Conclusion

I enjoy using Slackware because of its simplicity. The reasons I mentioned above are of course personal, and if you don’t agree with them, then you are free to use another distribution that fits you better, that’s the beauty of Linux! If you prefer a rolling-release distribution, then go for Gentoo or Arch. If you want stability at the expense of bleeding-edge software, then Debian Stable is your best bet. If you want a system that is easy to set up for end users, then Ubuntu should fit your bill. I’ve tried all of the above mentioned distributions, each with their own strengths and flaws, and I’ve settled on Slackware. But to each their own.

Back to Slack

I migrated my desktop/server back to Slackware Linux yesterday. I have been using various distributions on and off recently, from Debian to Arch to Gentoo, and now back to Slack. I’m not really sure what came over me, but I just felt the call, and I had to respond!

Slackware is the oldest currently maintained Linux Distribution, and it’s aged quite well. The Slackware team did a really great job on the latest version (13.37, released April 27th of this year). The distribution comes bundled with KDE 4.5 as its primary desktop environment, but that’s not the only option for users! I’m really liking KDE on my desktop because it has a decent graphics card and can handle some of the nicer desktop effects without slowdown, but more frugal users can install Fluxbox, Windowmaker, or a handful of other slimmer window managers.

It’s sort of nice to step away from the rolling release distributions like Arch and Gentoo occasionally. When I used Arch, I was updating my packages every day (with pacman, the greatest name for a packaging tool on the planet), and 98% of the time everything would work flawlessly. Once in a while however, an update would break, and I’d have to go through and figure out what the hell happened :-P Non rolling-release systems like Debian and Slackware are more difficult to keep bleeding edge, but you know that when a new version comes out, the packages will more-or-less work well without too much fussing. This is especially true for Debian’s stable branch :) Of course I’m not trying to offend users of rolling-release systems, everybody has their preferences, and you should use a distribution that suits your needs. Slackware does that for me.

One nice thing that separates Slackware from other distributions is that it does not do any dependency tracking for you by default. This may seem like a royal pain in the arse for installing software, but one nice thing about it is that at any given time you can know exactly which programs and libraries are installed on your system because you put them there yourself! I keep all software that I’ve installed on top of the base system in a special directory, so that way I can see exactly what I’ve added to my system. It’s a nice feeling to be in total control.

In conclusion: I’m glad to be back with Slackware. It’s always been one of my favorite distributions.