Last month I wrote in my Entropy (personal) blog about the failures of two of my computer systems. I ended up wiping the hard drive on my five and a half year old Toshiba Satellite 1805-S204 (1GHz Intel Celeron processor, 512MB RAM, 20GB HDD) and rebuilding it to temporarily handle more of the load. I chose to install two Linux distributions in a dual boot configuration and decided to take a good long look at the oldest surviving Linux distribution and one of the first ones I worked with: Slackware. A new release, 12.1, came out early in May so this seemed like the perfect time to take a look at the venerable distro.
I posted some of my first impressions in the Entropy blog last week. Slackware is still Slackware. It's designed for the very knowledgeable, experienced Linux user who wants the ultimate in control over their system. Slackware utterly lacks the kind of GUI administration tools found in most modern distros and assumes you will work at the command line and edit configuration files. Booting into X isn't even an option offered by the installer. Slackware has a well earned reputation for reliability, stability, and performance. It may also be the least user friendly major Linux distribution on the planet short of building Linux From Scratch.
Installation and Configuration
Slackware 12.1 is offered for download on your choice of six CD images (three for installation, three for source code) or a single 3.8GB DVD image. Those lacking a high speed connection can order either the CDs or the DVD, with or without a printed book called Slackware Essentials, from the Slackware Store. I chose to download the DVD image.
I booted the Toshiba laptop from the DVD and a welcome message appeared on my screen. At this point you can choose from one of three kernels for the installer to use. The default hugesmp.s kernel is recommended for most systems. huge.s is a choice for older systems and is what you must select if you're installing on a classic Pentium or AMD K6 (i586 architecture) based system. In theory this kernel can even support 486 processors. The third choice is truly inspired: a speakup kernel which supports a variety of speech synthesizers for visually impaired users.
I hit Enter to take the default and the Linux kernel and initial ramdisk loaded. The system then sat there with no visual cues for quite a few minutes. There wasn't even a flashing hard disk or DVD-ROM activity light. I know my system is old and relatively slow so I was patient and didn't assume that the installer had hung. Eventually another message appeared followed by a login prompt. After logging in as root (no password required) you have the option of partitioning your hard drive with fdisk or cfdisk if necessary. As expected there is no GUI or guided partitioning tool. The other choice is to run the setup command which launches the actual installer.
The installer is text based and is very much like the "expert mode" installations of some popular distributions, i.e.: Ubuntu. Anyone who has read my reviews of distros knows that I have no objection to a text based installer and that I have consistently recommended the alternate (text-based) installation CD over the live CD for Ubuntu and related distributions. The Slackware installer, however, really does assume that you are at least somewhat technically astute and that you know what you are doing. A newcomer to Linux would undoubtedly find the process truly bewildering. There is excellent, detailed, well written documentation in the slackbook directory of the DVD (also available online) that should be more than adequate to walk a computer literate user with a modicum of experience through the process.
In addition to installing from DVD or CD there is support for installing from an iso image on a local hard drive or across a network. Slackware 12.1 is the first release to support http and ftp installations in addition to NFS. Tools on the DVD also included support for PXE boot and for installation from a USB stick. Small Boot Manager is included to allow creation of a boot floppy for systems with a BIOS that does not support booting directly from CD or DVD.
The main strength of the Slackware installation process is flexibility. For example, you can select groups of packages to install but you can also then choose "Menu" mode to select individual packages within each group. This process is time consuming but it allows you to have absolute control over what gets installed and insure that nothing unneeded or unwanted is included. I've done four installations so far. A truly minimal but functional installation with X took up just 600MB of disk space. X itself is optional so someone doing a server build who doesn't need a GUI could start with an even smaller base system. A more complete installation with a fairly large variety of applications took over 2.5GB.
The installer barely deals with X at all. If you've chosen two or more window managers/desktop environments you will be prompted to choose a default. However, there is no X configuration included in the installation process nor do you have the option to boot into X by default. Once installation is done you will have to login as root at the command line and use the traditional CLI tools to setup any additional user accounts you need. Once logged into your account of choice if you type startx Slackware attempts to use the default vesa server for X.org. For many users, particularly laptop users and some flat screen monitor users, that simply won't work. On my laptop it produced a black screen. The usual key sequences to break out of X didn't work either. I had to do a hard reboot. Slackware does offer two standard command line tools for configuring X once you're up and running at the command line: xorgconfig and xorgsetup. Since I had an X configuration that I knew would work from my Vector Linux installation I just copied the monitor and display sections into my Slackware /etc/xorg.conf file.
In addition the installer doesn't setup the system to load the kernel modules needed to support my laptop at boot. I had to manually add:
to my /etc/rc.d/rc.modules file to correct this. On a plain vanilla desktop system this wouldn't be an issue, of course, but I suspect other laptop users, not just those of us with Toshiba machines, will need to do some tweaking by hand to get their laptops to be 100% functional under Slackware.
I should also note that Slackware includes only one piece of non-free software: JRE. If you need a proprietary driver for a wireless card, a video card, or any other hardware you may have you will need to download it from an upstream source. If a Slackware package isn't offered you may have to compile the driver yourself. For example, my Atheros chipset PCMCIA Wi-Fi card still requires the MadWifi driver since ath5k isn't quite ready from prime time just yet. After compiling the kernel module from source code my WiFi card worked perfectly. Open Source purists won't approve of the inclusion of JRE in Slackware and the average user who wants their hardware to just work and isn't comfortable building their own drivers will find this situation unacceptable.
Once all the hardware was correctly configured the startx command brought up an Xfce desktop, my chosen default, as expected. KDE is the other major desktop environment offered by default. GNOME is not included in Slackware. A nice variety of lightweight window managers are also included in Slackware 12.1, including Fluxbox and Windowmaker.
Before moving on I should probably add a couple of additional configuration notes. Initially I had to mount removable media in a terminal session at the command line. To have HAL correctly add and remove icons on my Xfce desktop I had to create the .hal-mtab file in /media. It wasn't done automatically as is the case in most distributions. Also, if you decide to change your default system X session you need to either run xwmconfig at the command line or change the /etc/X11/xinit/xinitrc symlink to point to the correct one for your chosen window manager or desktop environment of choice. Slackware does not include a display manager which allows you to choose your session at login unless you install KDE as part of the initial installation process.
Changes Since Slackware 12
On the desktop Xfce has been upgraded to 4.4.2 and KDE has been upgraded to 3.5.9. Slackware 12.1 is the first release to include HAL support. Once correctly configured it does allow Slackware to have a desktop environment that is as user friendly as any other Linux distribution. Web browsers include Firefox 22.214.171.124 and Seamonkey 1.1.19. Most of the tools and applications included in Slackware have been upgraded as well. This includes KOffice 1.6.3 and GIMP 2.4.5.
Under the hood Slackware 12.1 sports a 126.96.36.199 kernel with greatly improved hardware support. An alternate 2.4.x kernel, included in Slackware 11 and 12, has been dropped. X.org has been upgraded to version 7.3.0 so all the latest compiz-fusion eye candy and 3D graphic effects are fully supported.
Running Slackware 12.1
The performance of Slackware 12.1 on my laptop is excellent. Subjectively it seems to be slightly better faster than Xubuntu Hardy Heron but not quite as fast as Vector Linux 5.9 Standard. Other full featured distributions (SuSe, Mandriva, and Fedora) are noticeably slower even when running an Xfce desktop. Switching to the KDE desktop also allowed Slackware performance to shine. Slackware is noticeably faster than Kubuntu or Mandriva with KDE. The only distribution that I've found to be at all faster than Slackware with KDE Is Vector Linux SOHO. If you don't mind the work needed to configure Slackware it is an outstanding choice for older hardware and systems with limited resources.
Slackware 12.1 gives you a pretty minimal set of applications after installation, particularly if you decide not to install KDE. There is only a tiny repository called "Extra" which contains things like international aspell libraries. There are no additional applications to speak of. You won't find official Slackware packages for many very popular applications. There is no OpenOffice package, no mplayer package, no xmms package, and so on. Absolutely nothing which depends on GNOME libraries is included. k3b 1.0.4, by far the best CD/DVD burning software for Linux, can be installed with qt and kdelibs as dependencies even if you don't install a full KDE desktop. Other provided multimedia applications include Xine 0.99.5 and Amarok 188.8.131.52.
If you've installed Xfce as your desktop of choice you'll find a minimal set of applets have been included. No additional Xfce applets from the Xfce Goodies Project are officially packaged or supported by Slackware. xfmedia and xfburn are also not included.
If you have to reconfigure your network, add or change a user account, or do any other system administration task you can think of plan on doing most of it on the command line unless you've installed KDE and there is a generic KDE tool to do the job. Slackware has no graphical system administration tools of its own. Package management tools are also restricted to the command line and do not include any form of dependency checking out of the box. It's very easy to add a piece of software only to find it won't run due to some missing library. Once you start adding software from third party sources this becomes particularly messy if you don't do your homework and track down all the dependencies on your own. It's a recipe for dependency hell that's rarely seen on other major distributions in 2008.
Slackware is a DMCA complaint distribution so, as you'd expect, multimedia support out of the virtual box is terribly limited. Packages and instructions for adding proprietary codecs, if doing so is legal in your country, are available only from third party sources.
During my first three weeks running Slackware I have yet to find a single bug. That is something I've never been able to write in a review of a Linux distribution before and it is truly impressive.
Third Party Resources For Slackware
If it sounds like an awful lot is missing from Slackware you might be relieved to know that there are third party resources to provide pretty much everything that other distributions have. There are a variety of sites that provide ready to go Slackware packages for most popular applications and tools plus a fairly large selection of relatively obscure ones as well. The largest and best known repositories of third party Slackware packages are Slacky.eu and Linuxpackages.net. I've found that the quality of packages from these community supported sites does vary widely.
Many Slackware users prefer to compile software from source code rather than using packages which they might not trust. Compilation often can be simplified by sites that provide build scripts which automate the process. The best known site for Slackware build scripts, the only such site recommended on the official Slackware website, is Slackbuilds.org. Another option for those familiar with the ports system used by FreeBSD and Linux distributions like Gentoo and Crux is CruxPorts4Slack, a command line tool written by Henry Jensen, the man behind DeLi Linux. It allows the ports repository for the Crux distribution to be used with Slackware.
Proper dependency checking can be added to Slackware as well. Stefano Stabellini offered a Slackware mirror with dependency checking added for version 12.0. He does not have a version for 12.1 online as of yet. He is also the author of RequiredBuilder a command line tool usually used in package building scripts to create a dependency tracking file called slack-required. This file is used by third party package managers, particularly Slackware apt (slapt-get and the graphical gslapt) to offer the same sort of dependency checking users of apt in Debian, Ubuntu, and related distributions are used to.
There are, of course, a wide variety of graphical tools for managing your system that work with any distribution including Slackware. I'm particularly fond of WiFi Radar for configuring my wireless adapter and finding and connecting to WiFi networks.
All of this demonstrates that with considerable work and effort it is indeed possible to create a Slackware installation that is as user friendly as any other Linux distribution. Unfortunately none of this is an adequate substitute for a proper and extensive repository maintained by a Linux distributor with sane package management including dependency checking. This is where Slackware has always lost me and where, when you stick with what is provided with the distribution, Slackware has essentially remained unchanged since the mid '90s. It's still very time consuming and generally a royal pain to get everything configured and installed the way I like. The dependence most users will have on using third party sources of unknown quality is a major drawback of using Slackware. The alternative, building everything you need that isn't included from source, is time consuming even with the third party tools available and requires a fairly high level of knowledge on the part of the user.
Internationalization and Localization
Slackware includes with a full set of KDE i18n (internationalization) packages. The Slackware Extra repository provides a full set of international aspell dictionaries. All the international fonts provided by X.org are also included. scim, anthy, and the basic tools needed for Asian language support are part of Slackware. FriBiDi is also included for supporting languages written from right to left such as Arabic and Hebrew. Slackware provides all the building blocks you need for supporting pretty much all the popular languages around the world.
What isn't included is much in the way of translated documentation unless it's included by upstream application developers. (Some translations of Slackware documentation are available online.) The installer is in English only. Slackware also fails to include any graphical tools to switch between languages easily or to set default language or locale. That all has to be done at the command line or by editing appropriate configuration files. There is no sophisticated display manager to allow you to choose language on a session by session basis easily. In addition no packages for localized versions of any applications are provided. There are also no language packs for Firefox, Seamonkey, or Thunderbird. All have to be obtained from upstream sources.
As with most everything else in Slackware the most essential tools for proper multilingual support are in place but absolutely nothing is provided to make it easy or intuitive to implement those tools. The package selection for someone who wants their system in a language other than English is quite limited.
Slackware is very much old school Linux. It is clearly intended for advanced Linux users who know what they are doing and are comfortable at the command line. The only newcomers to Linux who should consider Slackware are those who wish to really learn how Linux works under the hood and are ready to roll up their sleeves.
Slackware clearly has some very strong points. It is stable and reliable, offers good performance, and gives the user absolute control over what goes onto his or her system and how things are configured. These strengths have created a cottage industry of derivative distributors promising a Linux system with the reliability and performance of Slackware and a user friendly experience. Distributions like Vector Linux (review), Zenwalk, and Wolvix (review) have delivered on that promise. To me Slackware is a fantastic base on which to build a first rate distribution. It is not what I consider to be a good distribution in its own right.
Even advanced users will find Slackware time consuming to install and configure properly. The dependence on third party or upstream sources for packages for many if not most popular applications is troubling at best. The lack of a package management system with proper dependency checking is pretty much inexcusable in 2008. As a Linux professional I find I spend way too much time mucking about with things that are dirt simple and really no-brainers in other distributions. The fact that Slackware is largely developed and maintained by one person and offers no commercial support makes it inappropriate for the corporate or institutional server room.
Slackware remains Slackware. It's been around for a very long time and it has a very loyal following. It's an excellent choice for the Linux hobbyist who wants to build, configure, and tweak their system to the nth degree. Slackware certainly gives you absolute control over your system. Nothing is made to be easy or user friendly. If you want your computer to "just work" then Slackware is certainly not for you. It's not a distribution I can recommend to most Linux users and it is one that I would actively discourage newcomers to Linux from trying unless they really and truly know what they are getting into.