Taking Up the Slack(ware)

By: Kurt Wall
Thursday, June 6, 2002 11:30:52 AM EST
URL: http://www.linuxplanet.com/linuxplanet/reviews/4241/1/

Catching Up with Slackware 8.1rc2

In the last episode, I explained that my Linux boxes run Slackware and XFCE and aren't encumbered by KDE and GNOME. I'm happy to report that they all still run Slackware -- and one of them now also has both KDE and GNOME, because I installed Slackware's 8.1 release candidate 2. Slackware devotees won't be disappointed with this release because most of what you have come to know and love about Slackware is still present in this release. The pending release of Slackware 8.1 might interest users of other Linux distributions, too. In the aftermath of last week's bizarre UnitedLinux announcement, which amounted to "All yer Linux Standard Base are belong to us, but only in source code because all you desktop Linux users are freeloaders!", fans of TurboLinux, OpenLinux, SuSE, and Connectiva may be in the market for a truly free Linux that has the latest and greatest of all the major applications. Slackware 8.1 fits the bill nicely.

The Hardware

For this review, I gave Slackware it's own 20GB disk on my VA Linux Pentium III 800, which has 256MB RAM, the aforementioned Quantum Fireball 20GB ATA disk, an ATAPI 40X CD/DVD-ROM driver, an Intel Ethernet Pro 100 NIC, Matrox G400 AGP video adapter with 32MB, a Logitech 3-button PS/2 mouse, and an Ensoniq 5880 AudioPCI card. In all, my crash test dummy for this review was very standard, and the Slackware installer properly detected all of the components, except for the sound card. To be fair, the Slack's installer does not attempt to configure sound cards, so this was no surprise. There were a couple of installation details I wish were handled differently, but, this is a beta. More about these "details" in a moment.

The Installation

As Slackware fans know, installing Slackware is strictly a console-based affair. No eye-popping GUIs here, thank you very much. This alone sets Slackware apart from other Linux distributions. Other than this no-frills approach, installing Slackware is much like installing other Linux distributions: pop the installation CD into the drive, reboot, and start the process. If you cannot boot a CD-ROM drive, you can start the installation using floppy disks. At this point, I ran into one of those "installation details I wish were handled differently:": as of Slackware 8.1, a floppy-based installation requires at least six floppies. Yup. You read that correctly; six floppies. Back in the good ole days, a floppy-based Slackware installation required a boot disk, which contained the kernel, and a root disk, color.gz, which held a compressed ramdisk image containing the installer and the installation filesystem. Alas, the compressed image no longer fits on a single floppy. Due to an apparent limitation of the boot disk (or the Linux kernel, perhaps), you can either load a compressed ramdisk from a single floppy, or read an uncompressed filesystem from multiple floppies. So, why didn't I just boot the CD-ROM? Somehow, transporting the bootable installation CD I'd made at work (and which booted at work) to my home rendered the CD-ROM unbootable, so I was forced to perform a floppy-based installation -- hence my discovery of the new multi-floppy root disk. I digress, however, because most people's bootable CD-ROMs won't mysteriously become unbootable.

If you boot from the CD-ROM, you can select the kernel image from which to boot. One of the slickest features of Slackware 8.1 is that you can boot a kernel with support for JFS (IBM's journaling filesystem), XFS (SGI's well-regarded journaling filesystem), ReiserFS (Hans Reiser's journaling filesystem), EXT3 (the journaling extension to EXT2), or, of course, plain vanilla EXT2. If, like me, you find yourself unable to boot from the CD-ROM, can make a boot disk using one of these kernel images. There are other options, too, including standard SCSI and IDE images, support for older SCSI drives, USB, RAID, and kernels with Speakup speech support.

When the installer first boots, you are presented with a screenful of information and a boot: prompt. You can either press Enter to boot straight away or press F1. If you press F1, you will get instructions telling you how to pass VESA video modes to the kernel before it loads and a table of supported modes. Type "ramdisk vga=NNN", where NNN is the mode number corresponding to the resolution and color depth you want, and then press Enter to boot the kernel. Pressing F2 will take you back to the initial boot screen. My complaint here is that the mode I selected, 791, which corresponds to 1024x768@16k colors, didn't work with my Matrox G400. The kernel complained about an invalid mode, so I pressed Space to use the boring old 80x25 standard console. Booting from the CD-ROM, though, F2 offers help selecting a boot image, while F3 lists the images from which you can choose -- you don't get to select the boot image when booting from a floppy because the boot image is the one you selected.

Once the installer has booted, you select a keyboard map if you aren't using a US keyboard, login, and start the installation with the "setup" command. If you don't already have Linux partition set up, use "cfdisk" or "fdisk" to partition your disk before using setup. After creating and activating a swap partition, I configured my filesystem. Because I had booted with an XFS boot disk, I was able to format my partitions as XFS. All of the kernels support EXT2, EXT3, and ReiserFS; the JFS image adds support for JFS and the XFS image (surprise!) adds support for XFS.

My filesystem duly arranged, I selected my software. With Slackware, you select disk sets, a hoary holdover from the days when Slackware was installed from floppies. "Disk sets" are just collections of related packages. These days, of course, CD-ROMs rule, but the terminology hasn't caught up with the technology and the older term is still used. The choice of disk sets includes:

  • A : Basic Linux System
  • AP : Applications that don't need X
  • D : Development tools and utilities
  • E : Emacs
  • F : FAQs and HOWTOs
  • GNOME: The GNOME desktop and GTK+
  • KDE : The K Desktop Environment and Qt
  • KDEI : KDE international packages
  • L : Various libraries, including GLIBC
  • N : Network programs, utilities, servers, and clients
  • T : teTeX, LaTeX, and related typesetting software
  • TCL : TCL and Tk
  • X : Base X Window system
  • XAP : X Window system applications and window managers
  • Y : BSD games

Strictly speaking, you only need to install the components of disk set A that are marked required in order to have a fully functioning, albeit limited, Linux system. In fact, to get the bares bone system possible, only select the A disk set and then, unselect all of the packages disk A contains. You'll wind up with only a single package, aaa_base, installed, which contains just enough to create a usable system, a whopping total of 178MB of software -- try to reproduce that with Red Hat, TurboLinux, SuSE, OpenLinux, and the like.

  • full : Installs everything
  • newbie : Prompts user before installing each package
  • menu : Chooses groups of related packages
  • expert : Selects individual packages
  • custom : Uses custom tagfiles
  • tagpath: Uses tagfiles in specific subdirectories
  • help : Gives keystroke help for using the prompt modes

For completeness' sake, I chose the Full option, which installed about 2GB of software. The "tagfile" in the "custom" and "tagpath" options is a file (named, not surprisingly, TAGFILE, that sets the defines what packages from software sets to install or not install. Intended for advanced or experienced users, tagfiles enable you to customize and automate the installation process. I won't bore you with a complete list of the packages available, but the highlights are:

  • Kernel 2.4.18
  • GLIBC 2.2.5
  • XFree86 4.2.0
  • KDE 3.0.1
  • GNOME 1.4
  • GNU Emacs 21.2
  • Ghostscript 7.0.5
  • BIND 9.2.1
  • Apache 1.3.24
  • Mozilla 1.0rc3
  • Netscape Communicator 6.2.3

Other new additions to Slackware are my favorite window manager, XFCE, WindowMaker (Blackbox 0.62 is in the "extra" packages not available by default), LPRng (CUPS is another print manager in the "extra" packages), and GCC 3.,1, also in the "extra" category. Most of the applications have been upgraded to quite recent versions -- GCC 2.95.3 is still the preferred compiler, however. A few Slackware standards have been put out to pasture, literally -- they've been moved in to the "pasture" directory. Most notable among these retired packages is the Xview, which contained the OpenWindows window manager. XFree86-3.3.6 has also been retired.

After about 20 minutes, all of the software was installed and the installer walked me through the standard post-installation configuration process. First, I installed a kernel to boot the system, selecting the XFS image from the CD-ROM. Next I created a boot floppy, which uses SYSLINUX to boot the root filesystem. I passed up the opportunity to make a spare boot disk, skipped the modem configuration step, and declined to select a customized screen font for the console. After a short interrupt while the installer ran Scrollkeeper to update and install the GNOME documentation, I set up the boot loader, LILO. Installing LILO was a breeze -- the installer has a simple option that attempts to install LILO automatically and an expert option if you need to exercise greater control over LILO's configuration and installation. Even the simple option enables you to select a VESA framebuffer video mode and to specify additional command line options that will be passed to the kernel (using LILO's "append=" keyword) at boot time.

Next, I configured the mouse and permitted the installer to use start GPM at boot time to enable console mouse services. Network configuration was a snap, too: I provided my host and domain name, fed the installer my static IP, netmask, gateway, and nameserver addresses, and then let the installer probe for the NIC, which it correctly identified as an Ether Pro 100. The configuration continued with specifying my Sendmail configuration (standard SMTP), selecting my timezone, and selecting the system's default window manager. If you perform a full installation, you can choose my a number of window managers, including

  • GNOME
  • XFCE
  • Enlightenment
  • WindowMaker
  • KDE
  • FVWM2
  • FVWM95
  • Sawfish (without GNOME)
  • TWM

After setting the root password, the installation was complete, so I exited the installer and rebooted, after being told, annoyingly, that "Installation of Slackware GNU/Linux is complete." I say "annoyingly" because I don't agree to the use of the phrase "GNU/Linux"-- but that's another column.

In all, the installation was painless. One feature I hope will change some day is that the installer, which is based on the dialog utility, an ncurses-based console GUI, will become more fault tolerant in the face of stray or accidental keystrokes. If you press Enter twice in a way because your hand twitches after too much coffee, that second key press carries over to the next dialog, causing you cause you to say Yes where you would ordinarily have said No, to accept a default value you might have preferred to change, or to install or not install software unintentionally.

First Impressions

Unlike other Linux distributions, Slackware makes no attempt to configure sound, X, a printer, or add mere-mortal users, so these were the first tasks I undertook after the post-installation reboot. The initial login is also to console mode, that is, run level 3. If you prefer a graphical login, simply edit /etc/inittab and change the default run level to 4, the value Slackware uses for the graphical login.

On to configuring XFree86. In the past, I had mixed success using X configuration utilties like xf86config and xf86cfg. So, these days, I just do it the simple way:


# X -configure

I had to hand-edit the generated configuration file because XFree86's DDC probe did not seem to recognize my monitor. After adding entries for the horizontal sync, vertical refresh, and the NoHal option to disable XFree86's attempt to load Matrox's Hardware Abstraction Layer (HAL), I was up and running with X. A quick useradd command added a merely mortal user. Next, because I knew that my AudioPCI card would work with the ess1371 module, a quick "modprobe ess1371" enabled sound (I had to change the permissions on /dev/dsp in order to allow non-root users to play sounds, however). I had the most trouble configuring my printer -- it wasn't until I read the mail "sent" by Patrick Volkerding, Hizzoner Mr. Slackware himself, to root's mail account that I found APSfilter's SETUP script and got my printer working.

So, what's wrong with this picture? The installation worked almost flawlessly. The applications and libraries are, for the most part, the latest and greatest versions known to be stable and reliable. The package names have been modified to mimic the RPM naming convention, and Slackare even ships with RPM 4.0.2, albeit unsupported. You can use leading edge (some might say bleeding edge) journaling filesystems out of the box. In short, you have a basic, highly functional Linux box that will just work without all the geegaws that thump performance. So, as far as I'm concerned. there's nothing wrong with this picture.--unless you are new to Linux or are addicted to graphical utilities and eye candy.

That's the catch: Slackware leaves you close to the silicon. Those new to Linux or lacking in their confidence to install and administer a Linux box without lots of point-and-click, drag-and-drop tools might find themselves too close to the silicon. What I find most appealing about Slackware, a feature that continues to shine in this release, is that it stays out of your way, at the cost of forcing you to administer it at the command line and to know what you're doing. This isn't a problem for me, but newcomers and those spoiled by the point-and-shoot tools of the Red Hats of the world may find it too big of an adjustment. For this latter group of users, there's too much to do that requires learning how to administer a server class system. And make no mistake about it: Slackware Linux is a server class system that happens to work very well as a desktop system, too.

Wrapping Up: Can Bubba Run Slackware Linux?

Unfortunately, Joe Lunchbucket might conclude that he has too much hand editing and tweaking to do for Slackware to be right for him. If so, he'd be losing out. I'd personally like to see Slackware adopt a more user friendly installer and also have the chance to configure X, sound, and a printer during the installation. I can live without these features. Maybe Bubba can't. It's up to Patrick Volkerding and the Slackware community to decide whether or not that's a problem.

For my money, Slackware 8.1 is, without a doubt, the best Slackware yet. It's fast, new, shiny, has that wonderful new car smell, and is coming soon to a mirror site near you!

Kurt Wall first touched a computer in 1980 when he learned FORTRAN on an IBM mainframe of forgotten vintage; things have only gotten better since then. He has written all or parts of seven books about Linux and UNIX programming and system administration, is working on his eighth, and is the technical editor for over a dozen other Linux- and UNIX-related titles. Currently, Kurt works for TimeSys Corporation in Pittsburgh and lives in South Park, Pennsylvania.

Copyright Jupitermedia Corp. All Rights Reserved.