Taking Up the Slack(ware) - page 2
Catching Up with Slackware 8.1rc2
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
- Sawfish (without GNOME)
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.