The saga continues with Slackware 14.2



Slackware is the oldest surviving Linux distribution and has been maintained since its birth by Patrick Volkerding. Slackware has a well deserved reputation for being stable, consistent and conservative. Slackware is released when it is ready, rather than on a set schedule, and fans of the distribution praise its no-frills and no-fuss design. Slackware adheres to a "keep it simple" philosophy similar to Arch Linux, in that the operating system does not do a lot of hand holding or automatic configuration. The user is expected to know what they are doing and the operating system generally stays out of the way. The latest release of Slackware, version 14.2, mostly offers software updates and accompanying hardware support. A few new features offer improved plug-n-play support for removable devices and this release of Slackware ships with the PulseAudio software. PulseAudio has been commonly found in the audio stack of most Linux distributions for several years, but that is a signature of Slackware: adding new features when they are needed, not when they become available. In this case PulseAudio was required as a dependency for another package.



Slackware 14.2 is available in 32-bit and 64-bit builds for the x86 architecture. There is also an ARM build. While the main edition of Slackware is available as an installation disc only, there is a live edition of Slackware where we can explore a Slackware-powered desktop environment without installing the distribution. The live edition can be found on the Alien Base website. Both the live edition and the main installation media are approximately 2.6GB in size. For the purposes of this review I will be focusing on the main, installation-only edition.



Booting from the install media brings us to a text screen where we are invited to type in any required kernel parameters. We can press the Enter key to take the default settings or wait two minutes for the media to continue booting. A text prompt then offers to let us load an alternative keyboard layout or use the default "US" layout. We are then brought to a text console where a brief blurb offers us tips for setting up disk partitions and swap space. The helpful text says we can create partitions and then run the system installer by typing "setup".



On this text screen is a login prompt where we can sign in as the root user without a password. I found Slackware provides us with the fdisk and cfdisk command line partition managers. There is no desktop environment and no graphical partition manager present. After making sure I had two blank partitions set aside, I ran the setup command to begin the installation.





Slackware 14.2 -- Running various desktop applications

(full image size: 270kB, resolution: 1280x1024 pixels)



Slackware uses a system installer with a text/ncurses interface. There are many screens and options we can explore. I have nearly two pages of notes on the various functions Slackware's installer provides and I will try to condense them down as best I can. While we can access the screens of the installer in any order we like using a menu, most people will probably want to start at the first item and work their way through sequentially. The installer walks us through selecting our keyboard's layout, setting up and activating a swap partition and selecting a partition to hold Slackware's root file system. Slackware's installer reports to support Btrfs, Reiserfs, XFS and ext2/3/4 file systems. The first time through, I opted to try installing the operating system on Btrfs, but could not get the LILO boot loader to boot Slackware on a Btrfs volume. After that, I stuck to installing Slackware on ext4, which worked well. The installer gets us to select where it can find software packages (CD/DVD, USB drive, local hard drive, network share or FTP/HTTP server). I found that if I went through most of the installer's steps once, selecting the CD/DVD option then the installer would comply. However, if I cancelled the installation and walked through the screens again, the installer would fail to locate the mounted DVD. Exiting the installer (or manually unmounting the DVD) and then re-running setup corrected the issue.



The system installer gets us to select which groups of packages should be installed. There are many, including international language support, the KDE and Xfce desktops, games, the base system, documentation, editors and kernel source code. I decided to install both desktops and most utilities. I omitted international language support and kernel source code. When Slackware has finished installing I had about 9GB of software on my hard drive, more than double what I usually get from installing other distributions.



The installer offers to install the LILO boot loader and gives us all sort of options as to where to place LILO and what kernel parameters to use. We then walk through configuring the network interface, enabling network services (such as CUPS, OpenSSH, Sendmail and network time synchronization). We are then asked to select our time zone from a list and choose a default window manager to use. We create a root password and then we can restart the computer to begin exploring our new copy of Slackware. I installed Slackware 14.2 four times, each instance took about an hour, a little more or less depending on which package groups I opted to install.



Slackware's boot loader, by default, waits for two minutes before starting the distribution. The system then starts up and brings us to a text screen where we can sign into the root user's account. The root account has a few e-mails in its inbox, which we can read by running the mail command. These e-mails explain a bit about Slackware and how to use the system and the package manager utilities.



While signed in as the root user we can create regular user accounts via the adduser command line program. Should we wish to access a desktop environment we can run startx. To get Slackware to boot to a graphical login screen instead of a text-based environment, we can edit the /etc/inittab text file and change the default run level to be the graphical interface. The inittab file is well documented, making this a relatively easy task in any text editor. Starting Slackware in its graphical run level brings us to a graphical login screen where we can sign into a variety of desktops and window managers, including Fluxbox, KDE, Xfce and WindowMaker.





Slackware 14.2 -- The KDE application menu

(full image size: 526kB, resolution: 1280x1024 pixels)



While I confirmed the various session options worked, I spent most of my time logged into Slackware's KDE 4.14 desktop environment. The official edition of Slackware sticks to KDE's default settings which, to my eyes, looks a bit washed out. The live edition of Slackware boots to a graphical login screen and offers us a very similar KDE experience. The live edition offers three main differences from the official edition, the first being the live edition has no setup command. It does have an alternative installer called setup2hd which can be run as the root user. The second difference is the live edition features a KDE theme that provides a slightly higher contrast between foreground and background, making text easier to read and icons on the panel easier to see. The third difference I noticed is the live edition runs Network Manager to help us get on-line. The official edition ships with Network Manager, but the service is disabled by default.



I experimented with running Slackware in a VirtualBox virtual machine and on a physical desktop computer. When running on the desktop machine Slackware worked well. My screen was set to its full resolution, networking and sound worked out of the box and the KDE desktop was responsive. I found the distribution used approximately 430MB of memory when logged into the desktop. Slackware worked inside VirtualBox, but was not able to make use of my host computer's full display resolution and the desktop was sometimes sluggish to respond. Slackware does not provide VirtualBox add-on modules and the generic ones provided by the VirtualBox project failed to install on the distribution. I was able to find VirtualBox modules through the SlackBuilds website (more on SlackBuilds later), though installing the modules required hunting down about half a dozen dependencies in Slackware's software repository. In the end, I was able to get Slackware to use the VirtualBox add-ons and use my host's full screen resolution.





Slackware 14.2 -- The KDE System Settings panel

(full image size: 445kB, resolution: 1280x1024 pixels)



The applications available to us will vary a great deal depending on which software groups we selected when we installed Slackware. Assuming we selected most of the bundles (as I tended to do) we end up with a massive amount of software, most of it useful, some of it less so, but each category in the application menu is filled. Firefox is included along with popular applications such as Thunderbird, Pidgin and the GNU Image Manipulation Program. I found KPPP was available to help us connect to dial-up networks and the KDE System Settings panel was present to assist us in changing the look and behaviour of the desktop. In fact, with the KDE group of packages installed, just about every application with a "k" in its name is present, from the Kleopatra security utility to the Ark archive manager.



One surprise I found was that Slackware does not include LibreOffice, in its place we find the Calligra productivity suite. LibreOffice (and OpenOffice) are not in the distribution's repositories either. We need to visit a third-party repository, like SlackBuilds, to find a copy of LibreOffice. Adobe's Flash player was not available either and once again we must visit a third-party repository to find it as Slackware does not offer Flash. Multimedia codecs are included though and I found video files would play in Xine and audio files played in the XMMS player. In the background, I found Slackware ships with the SysV init software (version 2.88) and the distribution runs on version 4.4.14 of the Linux kernel.



Looking through Slackware's collection of software I found some programs I rarely see anymore. XMMS for instance does not show up nearly as much these days as it did a decade ago. Likewise, Slackware allows us to install Python 2 (which most projects now consider obsolete), but I could not find a copy of Python 3 in the distribution's repositories. The applications included tended to work well and I experienced no crashes during my trial. I was able to get work done, set up a printer, watch videos, write documents and listen to music without distractions or additional work on my part. PulseAudio was one of the new features of this release and I found it worked smoothly.





Slackware 14.2 -- Installing software with slackpkg

(full image size: 435kB, resolution: 1280x1024 pixels)



Should we wish to install additional software or upgrade existing packages there are a few ways we can approach the task. One is the slackpkg command line package manager. To use slackpkg we first need to edit the program's list of mirrors (/etc/slackpkg/mirrors) in a text editor and select which nearby repository mirror we wish to access. The slackpkg program uses a syntax similar to Fedora's dnf or Debian's apt-get. We can use slackpkg to refresh our software information, install or remove packages and perform software upgrades. We can also perform searches for packages using keywords. Occasionally, while performing upgrades, slackpkg paused and asked me if I wanted to overwrite my local configuration file with a new copy. This is not a problem, but worth noting as we may not want to leave slackpkg running unattended.



Slackware, as I have mentioned above, is missing several popular packages in its official repositories. Many users will want to seek additional software through third-party repositories such as SlackBuilds. The SlackBuilds repository acts a lot like a BSD ports tree where we can download scripts which will build packages for us. The SlackBuilds scripts build source code into a package for us which we can then install using the installpkg command. I found the SlackBuilds website to be easy to navigate and the project has useful documentation to help us get started. Unfortunately, scripts provided by SlackBuilds do not handle dependencies. This means any missing software needs to be manually located and installed and this can be a problem, especially if we did not install development tools during the initial setup of the distribution.



Conclusions



My first Linux distribution was a lightweight derivative of Slackware and so in some ways running Slackware in the past has felt like coming home. I may not use Slackware these days as my primary operating system, in fact I have not done so in a decade and a half, but every few years I have enjoyed returning to the distribution. Slackware is consistent, much the same today as it was five years ago, or ten years ago or even fifteen years ago. It is still stable, still stays out of the way, largely unchanged by fad or fancy.



But with each year that goes by, installing Slackware feels less like coming home and more like visiting an old, stone castle. It may be fun to look at, even educational, but not a place where I would want to stay. Getting settled in takes too long and there are no modern conveniences.



In this case, what I mean by that is the software in the official repositories feels out of date, the applications feel more like a wheelbarrow of software was dumped on my desktop rather than selected and integrated. Too many items need to be manually enabled, hunted down in third-party repositories and/or compiled from source code.



My main issue though was the lack of automatic dependency resolution. I know many long-time Slackware fans see dependency resolution as an unwanted feature or will point to tools which can be used to handle dependencies, and that made sense fifteen years ago. When tools like APT and YUM were young, there were package database glitches and extra software was pulled in unnecessarily. But these days package managers have matured a lot and Slackware makes us choose between dependency hell or installing everything up front (around 10GB of packages) to handle any possible dependencies. Neither is an attractive option. I probably spent more time this week hunting down dependencies to make my common applications compile through the third-party SlackBuilds scripts than I have spent fixing mistakes made by dependency-solving Linux package managers in the past ten years.



Slackware fans like to say that if something is not broke, don't fix it and I strongly agree. However, I think spending an afternoon tracking down dependencies one at a time to gain access to programs most distributions ship with by default borders on the definition of broke. On a similar note, I discovered this past week that if I switched slackpkg's configuration a new mirror that was behind my previous mirror (ie out of sync) I could make slackpkg remove my recent updates and install older versions of packages by running slackpkg upgrade-all. This is a potentially dangerous bug that can re-introduce out of date packages.



Putting aside my feelings about package management, I think Slackware 14.2 is a solid release. As usual, not a lot has changed. There are a few new features, which work as advertised, but otherwise Slackware remains the same as always. It is stable, reliable, constant. Fans of Slackware will probably continue to enjoy it, people who don't use Slackware will probably regard it as outdated. Though I have heard a handful of people, upset by the widespread use of systemd, talk about trying out Slackware as the distribution continues to run SysV init.



Slackware may not be attractive to a wide audience. Its lack of configuration tools, graphical package manager and small software collection will put off newcomers. But for people who want a "keep it simple" style of operating system and prefer slow-and-steady over latest-and-greatest, Slackware will appeal. * * * * * Hardware used in this review



My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: Processor: Dual-core 2.8GHz AMD A4-3420 APU

Storage: 500GB Hitachi hard drive

Memory: 6GB of RAM

Networking: Realtek RTL8111 wired network card

Display: AMD Radeon HD 6410D video card