"Linux Gazette...making Linux just a little more fun!"

SSC is expanding Matt Welsh's Linux Installation & Getting Started by adding chapters about each of the major distributions. Each chapter is being written by a different author in the Linux community. Here's a sneak preview -- the SuSE chapter by our own Larry Ayers. --Editor

Installing the SuSE Distribution

By Larry Ayers, layers@rain.gen.mo.us



The SuSE distribution began a few years ago as an adaptation of Slackware. Patrick Volkerding of Slackware helped the SuSE developers at first, but before too long, the distribution began to assume an identity of its own. Several new features intended to aid the first-time user increase the probability an installation won't need to be immediately redone. Given the cross-pollination endemic in the free software world, I wouldn't be surprised to learn some of these features have shown up in newer Slackware releases.

Beginning the Installation

When booting your machine from the single installation disk, you are really booting a miniature Linux system designed for this purpose. A colored screen appears, ready to ask a series of questions which with any luck will guide you through the process.

YAST (which stands for Yet Another Set-up Tool) shows its Slackware ancestry inasmuch as it uses the Dialog program; this tool enables shell scripts to present dialog boxes, radio buttons, and check lists which allow a user to make choices and direct the course of an installation.

While no distribution can guarantee a painless installation, the developers at GmbH have managed to anticipate several problems new Linux users are liable to have. One of the more frustrating problems is finding your CD-ROM drive isn't recognized. Copying the packages needed to get started to a hard drive and installing them from there is a solution, but it's awkward and time-consuming.

Rather than provide a selection of several disk images, one of which probably has the CD-ROM drive support you need, the single SuSE boot disk contains a small, basic kernel with all drivers available--if needed--in the form of modules. The kernel daemon is a background process which ensures the relevant module will be loaded if a modular function is needed. This helps to eliminate one stumbling block.

Another common trap is underestimating the disk space you need which forces the installation to abort itself due to lack of room. When this happens, the crucial final steps (such as installing LILO) haven't yet been reached and starting over is usually necessary. Script-based installations are necessarily sequential in nature; you may know skipping one step won't hurt anything, but it's hard to anticipate every eventuality in a shell script, and if things go awry the script usually aborts.

During the SuSE installation, a running tally of partition space remaining is displayed on the YAST screen; while selecting packages, you can try various combinations while keeping in mind how much free disk space you would prefer to remain free.

Partitioning and formatting disks, as well as creation and activation of a swap partition, are processes which aren't much different than in other distributions. They all use the same underlying tools to do these tasks; the procedure has become more or less standardised.

The use of "dependencies", which consist of information included in a software package concerning what other packages are necessary for it to run, has spread rapidly among Linux distributions. Unfortunately no universal format for dependencies has arisen, with each distribution now using a different format. Redhat's RPM format, used in several distributions, is powerful and effective, but has a few drawbacks. It works best on an all-RPM system, as the dependency checking done by the RPM program only knows about RPM packages. SuSE uses an adaptation of Slackware's *.tar.gz format, which has the advantage of flexibility. The dependencies are only checked if a package is installed from within the YAST program, allowing the option (for a skilled user) of unarchiving a package in another location, then checking out the files and configuration before final installation. Dependencies are most useful during the initial setup and while becoming familiar with a new installation. Once you've used the system for a while, you'll have an idea of what libraries and programs are available. Most software packages for Linux also contain information as to what needs to be present on a system in order for the package to function. It is wise to read through the entire rc.config file before running SuSEconfig and committing any changes you may have made. Some of the default actions the script will take you may prefer to handle yourself, but they are easily disabled by editing the file.

Users familiar with the Slackware layout of initialization files will need to make some adjustments; the files usually found in /etc/rc.d are instead in /sbin/init.d.


YAST is also intended to be used after installation for routine system maintenance. The multiplicity of resource files necessary for Linux to boot and run can be bewildering to the beginner. YAST offers a menu-driven interface to these files, including the sendmail configuration file, the cron (scheduling) files, initiation scripts, and various networking files. The changes made within the YAST session are written to a single file in the /etc directory, rc.config, which can also be edited directly. These changes are then written to the various "real" configuration files by a script called SuSEconfig. This script is automatically run by YAST at the end of a YAST session; if /etc/rc.config is edited directly SuSEConfig must be started manually. This sounds like a complicated procedure, but it's much easier than tracking down the individual files, learning the correct syntax needed for editing them, and actually making them do what you want.

Once you have SuSE Linux up and running, it's a good idea to install the kernel source (available on the CD-ROM, it's an optional package which can be installed during initial set-up). SuSE installs a generic kernel, and you probably need only a few of of the accompanying modules. This is an excellent opportunity to familiarize yourself with the mechanics of source code compilation, and you'll end up with a smaller customized kernel with only the capabilities you need.

The GCC compiler and accompanying tools must be installed in order to compile a kernel; these tools are a near-necessity on a Linux system even if you're not a programmer. The YAST dependency checking will help insure all required compilation tools are installed.

Kernel compilation can seem daunting to a beginner, but it is a fairly intuitive process. Three interfaces are available for the initial configuration step. The first (and oldest) is a console-mode script invoked via the command make config. This script asks a series of questions and uses the results to write a file which guides the compiler in its work. You need to know some basic facts about your hardware such as what type of hard disk and CD-ROM drive you have. If you want sound support you'll need to know the IRQ your card uses, as well as a few other parameters which can be gathered from the card's manual or the output of the DOS msd utility.

The other two interfaces are menuconfig and xconfig. The first uses a modified version of the Dialog program mentioned above, which runs in the console or an xterm and resembles the YAST setup tool. Xconfig is a Tk-based version, designed to run in an X Window session. All three accomplish the same task; the latter two let you make choices without typing much. The kernel sources are well-documented. The README file in the top level directory contains enough information to nearly guarantee a successful build.

Getting X Up and Running

Successfully configuring the X Window System (specifically XFree86, which is included with SuSE and most other distributions) can be a stumbling block. There is such a multiplicity of monitors and video cards that each installation of X must be individually configured. The difficulty has been eased somewhat with the release of XFree86 3.2, which is included with the most recent SuSE release. A Dialog-based configuration tool can now be used in place of the previous xf86config. Both are based on shell scripts similar to the one used to configure the Linux kernel. Nonetheless, you will still need to know your monitor's horizontal and vertical refresh rates as well as the chipset installed on your video card. It helps to initially set your sites low, i.e., get X functioning at a low resolution first before attempting to make full use of your video card's capabilities.

The SuSE developers have taken some pains in configuring the various window-managers supplied. The first time you start X many of the applications you elected to install will be available from the mouse-activated root-window menu. Another entry on the menu allows you to change the window background. Many well-designed icons are supplied. This gives the new user a bit of a reprieve. After getting Linux and X finally running, there is enough to do just learning how the system works without feeling compelled to customize the environment in order to make it tolerable to look at!

Later Upgrades

The minute you've finished installing even the most up-to-date distribution available it begins to incrementally become outdated. This is a slow process, but eventually you will feel the need to upgrade some part of the system. Some distributions work best when the native format of upgrade file is used, but SuSE works well using the standard *.tar.gz format. SuSE follows in Slackware's footsteps in this respect. The majority of software packages will compile and install well (on a reasonably current Linux system) from the tarred and gzipped format most developers use. There are a few tricky packages out there; in these cases RPM can be used. The dependency checking won't work, but RPM allows you to take advantage of a more experienced user's makefile editing and configuration skills.

Copyright © 1997, Larry Ayers
Published in Issue 16 of the Linux Gazette, April 1997