Pat Volkerding and the Slackware team released the latest version of Slackware Linux, 12.1, on May 2. Even though it is a "point one" release, the list of new features reads like what other distributions would consider a major new version. Slackware 12.1 features the latest KDE 3.5.9, Xfce 4.4.2, and a number of improvements, especially to udev. The full list of updated features is in the official product announcement. From a user's perspective, version 12.1 is a true refinement of the previous version.
Slackware is the oldest surviving Linux distribution; its first release was in 1993. It is a very "hands-on" distribution -- nearly all the system configuration chores require editing text files. Additionally, Slackware is a very plain distribution. The Slackware team makes few changes to sources, preferring to compile them and pass them on.
The same philosophy is evident in how Slackware performs package management. Slackware has easy-to-use package management features both from the command line and graphically (ncurses-based). But Slackware does not check packages for the presence of libraries they depend on, nor will the package management tools automatically download and install dependencies. Slackware users consider this a feature. Making the process of installing dependencies separate from installing applications means that when problems occur, the process fails gracefully. The full installation of Slackware provides a comprehensive selection of libraries, so most dependencies are already available. When they're not, it is usually a simple matter to download, compile, and install them. Tools such as slackbuild scripts available from Slackbuilds.org, and scr2pkg, make compiling Slackware packages a breeze.
Distro maintainer Volkerding tends to be conservative, choosing to wait to add the very latest features to Slackware. For example, while a 2.6 kernel was available in Slackware 11, its default installation featured a 2.4-series kernel, even though most distributions had moved to 2.6 kernels. Most recently, Slackware 12.1 uses KDE 3.5.9 instead of KDE 4.0, even though Debian, Fedora, Kubuntu, openSUSE, and others have released packages for KDE 4.0. The consequence of taking a conservative approach is that Slackware is a rock-solid, stable distribution. Once Slackware is properly configured, it runs without trouble. System maintenance is minimal beyond applying security updates when they become available. Security updates are available for previous versions of Slackware back to version 8.
Slackware 12.1 refines the features introduced in the previous version. It uses HAL, D-Bus, and udev in the default installation. Those technologies make it possible for devices such as removable media to communicate with the operating system and be mounted as soon as they're inserted. This behavior is exactly what most users expect from a desktop operating system. Once Slackware is properly set up, even beginning users will find it easy to use.
Most of Slackware 12.1's improvements are under the hood. It includes the latest versions of Python, Ruby, the latest modular X11 system, and more. Slackware 12.1 installs glibc 2.7, which has great compatibility with existing binaries. This means that users generally do not need to recompile applications used in Slackware 12. My testing generally bore out the compatibility of applications compiled under Slackware 12 in Slackware 12.1. The most notable improvement from the previous version to the current one is that the X Window System is noticeably faster than before -- an important consideration with the older hardware I am running.
How to upgrade
I upgraded two computers to 12.1. My desktop computer has been running Slackware 11 since the final months of 2006, and my laptop computer has been running Slackware 12 since last December. Although putting Slackware 12.1 on both computers is technically an "upgrade," the techniques I used for each computer varied. Going from version 12 to 12.1 is an upgrade in place: installing a new kernel, new tool chain, new software, and upgrading existing software. Going from version 11 to 12.1 required wiping off the existing Slackware 11 installation and putting a fresh copy of 12.1 on the hard drive.
In both cases there are a few things to do before you install 12.1:
- Read the documentation. The Slackware installation CDs or DVD come with a lot of information in text files. All of the information is valuable, and reading it will save you a lot of frustration later.
- Browse the Slackware forum at the Linux Questions Web site, the official support forum for Slackware. Sometimes even after reading the documentation, something remains unclear. A lot of friendly and knowledgeable people, including some of the Slackware developers, read the posts and help answer users' questions. If you have a problem, somebody has probably already posted a solution.
- Back up your /etc directory. I backed mine up to a .tar file and moved it to a drive partition that was not slated to be reformatted. Back up your /home and /root directories too.
At that point, you should be ready to go.
I will not give a blow-by-blow account of my experiences upgrading Slackware on two computers, but here are the highlights and pitfalls I encountered.
One would think that the clean installation would be the easier of the two processes, but the opposite is true. The general idea is to install everything cleanly, and then move your backed-up configuration and data files to the new installation. I did the installation a few times to figure out the best way to accomplish this seemingly simple task. The snag I encountered was with recreating my unprivileged user accounts. I initially wanted to leave my existing /home directories untouched, but when I created new users and pointed their home directories to the existing ones, the user IDs were inconsistent. I ended up having to recreate them from scratch and move the configuration files (such as Firefox and Thunderbird profiles) to the new directories from the backups. In retrospect, I should have copied my group, passwd, and shadow files from the /etc directory backup. Then I probably would have had no trouble logging in and using the existing home directories.
I ran into two other snags with the upgrade from Slackware 11 to 12.1. First, the xorg.conf generated by both the xorgsetup and xorgconfig utilities gave unsatisfactory results. I copied over the new file, replacing it with the backed-up xorg.conf from Slackware 11. After that, everything worked fine. The other snag seems to be a hardware incompatibility with HAL. My seven-year-old Hewlett-Packard CD-R drive kept spontaneously ejecting the CDs. Posts on the Ubuntu forums seem to indicate the problem happens with older drives. A good workaround is to add the drive to the fstab file and then manually mount it when you want to use it. The problem did not happen with the newer DVD drive in the same computer.
My final chore was to download and install a few applications not included in Slackware: primarily OpenOffice.org, Frozen Bubble, Kaffeine, Scribus, and MPlayer. Even on my ancient Pentium III, this was not a time-consuming process.
In comparison to the clean installation, the upgrade in place from Slackware 12 to 12.1 was nearly painless. The UPGRADE.TXT file has simple and complete instructions for the process. With my data safely backed up, I copied the contents of the /slackware directory from each of the three installation CDs to my /root directory. That way, the new packages were installed from the hard drive rather than the CDs. I then followed the directions, and everything went as advertised. The updatepkg program updated existing packages to the new versions and installed new packages. New configuration files are given the ".new" extension. A script in the UPGRADE.TXT file installs the .new files and renames the old ones with a ".bak" extension. The script leaves the group, shadow, and passwd files alone. Final cleanup required updating my startup files (making a new initial RAM disk pointing to the new kernel and updating lilo.conf), merging the contents of six or so other backed-up .conf files with the new ones, and removing a handful of obsolete packages. The one new package that I had to download and upgrade was MadWifi, which I need for my wireless card; it is not included with Slackware. All of my settings transferred to the new version with no problems.
Slackware 12.1 is worthy upgrade to a fine distribution. I recommend it highly. It presents something of a paradox for users. It does not attempt to make system configuration easier for users, yet it is well documented and requires only a handful of edits to text files for configuration to get it running -- simple and understandable rather than easy. The end result is a modern Linux system that is powerful and requires little maintenance.