In 1993 Ian Murdock created the Debian Linux distribution, initially under the auspices of the Free Software Foundation's GNU project. Although the direct connection with FSF/GNU is a thing of the past, Debian is still the only major distribution which is not connected with a commercial entity and which is maintained solely by a loosely-knit band of volunteers. The parallels with Linux itself make this distribution appealing to Linux users who value the ideals of the free-software world, including those who may disagree with the purist views of the FSF.
Debian hasn't exactly swept the Linux world by storm. The installation procedure in the past has relied on the creation of several floppy disk images, and due to the idiosyncrasies of the floppy medium at least one disk in the set would be bad (in my experience), forcing the irritated user to recreate the faulty disk and start over from the beginning. Debian 2.0 thankfully doesn't require starting over if (say) disk 5 is bad; it just starts the installation again from where it left off. Luckily machines with BIOS support for booting from a CDROM are becoming common and cheap, and Debian CDs are set up so they can be booted directly. Once the base system was installed the dselect package installer, a functional but unintuitive and visually unappealing application, would further discourage new users.
Once these hurdles were overcome, the user would find that the Debian system was very well thought out. As an example, the configuration of sendmail has been a stumbling block for many new Linux users. In my Slackware days I had a painfully developed sendmail configuration which sort of worked, but even getting it to that point involved a lot of FAQ-reading and searching of usenet messages. The first time I installed the Debian sendmail package, I was asked a few pertinent questions about my system and its relationship to my mail-server. The result was a sendmail configuration which works flawlessly, due to the invocation of some obscure options which I'd never heard of. The printer configuration, as a final step of installing the magicfilter package, also has worked very well for me. These installations may not have the fancy graphical interfaces found in some other distributions, but they work well and don't require a working X Windows set-up along with various X toolkit libraries.
The core of Debian's strength is in the exceptionally versatile *.deb package format. This format, comparable in many ways to Redhat's RPM, does everything possible to prevent a new package from conflicting with others or rendering a system unstable. The dependencies (i.e, what other packages are required for a new one to function) are enforced in a flexible manner and can be over-ridden by the user. Pre-install and post-install scripts are automatically run when a package is installed. These scripts will update default configuration files, delete obsolete files from earlier package versions, and prompt the user if choices need to be made.
The dpkg command-line program can be used to install, update, or remove packages. Dselect, a full-screen front-end for dpkg, can automatically fetch and install entire dependency hierarchies; in other words if you select a package with dselect it can determine what other packages are needed and install them as well. I have to confess that I rarely use dselect if I can help it. I usually obtain packages as I need them and install them by hand with dpkg. The problem with dselect is that it is usually used in an installation from scratch; by the time a system needs a major upgrade most users have forgotten the keystrokes. It's not a tool which is used often enough to justify really learning how to use efficiently, and toggling back and forth between the main screen and the help pages is cumbersome. My seventeen-year-old son first installed Linux because of the Gimp graphics program. I installed Debian 1.3 for him, but he's a hardware junky and is continually changing hard disks and video-cards. The second time he had to reinstall Linux I tried to get him to run dselect himself but he hated it. By this time he had convinced some friends to try Linux, and after several lengthy sessions on the phone attempting to walk these kids through package installation with dselect, I gave up and ordered a Redhat 5.0 CD, which they are all running now. Debian has a ways to go before a non-technical novice can easily install it without assistance.
Debian 2.0 has been delayed for several months, due to the existence of unresolved bugs in several packages. This is probably inevitable given the volunteer nature of the work, as well as the difficulties involved in the transition to the glibc libraries upon which all programs depend. Redhat 5.0 was the first glibc-based distribution, released last year. The release had several major problems, many but not all of which have been fixed with the release of version 5.1 this year. I surmise that the Debian developers resolved to forgo haste in order to avoid similar problems with Debian 2.0.
The Debian community was somewhat demoralized earlier this year when Bruce Perens, Debian's leader and spokesman, resigned. It seems that Perens thought Debian wasn't moving quickly enough towards user-friendliness. There is some truth to this opinion, as Debian seems to appeal to many seasoned Linux users who aren't put off by the lack of graphical administration tools. This illustrates on a smaller scale a problem Linux itself has: to gain a larger user-base easier configuration and installation is helpful, but the very people qualified to develop the necessary tools tend not to need or even want them. Linuxconf and COAS, two projects which attempt to address this need, may eventually fill this void.
This release is noteworthy for its skillful and painless handling of the lib5/libc6 issue. Both versions of the essential libraries and support files can be installed and used simultaneously in a manner which is transparent to the user. This is important because most commercial, binary-only Linux applications are compiled to use libc5. This also allows incremental upgrading of an existing Debian 1.3 system; the minimal base files to upgrade from 1.3 to 2.0 can be downloaded in a couple of hours while further packages can be obtained and installed as time permits (or when the CD comes in the mail!). The old libc5 packages will continue to function normally until they are upgraded.
Libc5 itself isn't sufficient to run any but the most basic applications. Other shared libraries are needed; under Debian they are installed in /usr/lib/libc5-compat . Ldd, the shared library loader, is smart enough to use these libraries for libc5 executables. You will probably need the libc5 XFree86 libraries as well as libXpm in order to run the older binaries. It's easy to determine which libraries are needed by a libc5 executable. Just look at the output of ldd (i.e., run ldd netscape, substituting the name of the program for "netscape"). If both libc.so.5 and libc.so.6 are shown don't even try starting the program, as it will die immediately. If only libc.so.5 is shown, and the remainder of the shared libs are located in /usr/lib/libc5-compat then the program should run. Here is the output of ldd when run on libc5 version of Netscape:
libXt.so.6 => /usr/lib/libc5-compat/libXt.so.6 (0x4000c000)
libSM.so.6 => /usr/lib/libc5-compat/libSM.so.6 (0x4004e000)
libICE.so.6 => /usr/lib/libc5-compat/libICE.so.6 (0x40057000)
libXmu.so.6 => /usr/lib/libc5-compat/libXmu.so.6 (0x4006c000)
libXpm.so.4 => /usr/lib/libc5-compat/libXpm.so.4 (0x4007e000)
libXext.so.6 => /usr/lib/libc5-compat/libXext.so.6 (0x4008c000)
libX11.so.6 => /usr/lib/libc5-compat/libX11.so.6 (0x40097000)
libdl.so.1 => /lib/libdl.so.1 (0x40135000)
libc.so.5 => /lib/libc.so.5 (0x40138000)
And here is the ldd output when run on a libc6 version of Netscape:
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40010000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40052000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4005b000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40070000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40084000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40092000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4009d000)
libdl.so.2 => /lib/libdl.so.2 (0x4013b000)
libc.so.6 => /lib/libc.so.6 (0x4013e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libg++.so.2.7.2 => /usr/lib/libg++.so.2.7.2 (0x401e3000)
libstdc++.so.2.7.2 => /usr/lib/libstdc++.so.2.7.2 (0x4021b000)
libm.so.6 => /lib/libm.so.6 (0x40258000)
Of course if you install from scratch (and don't have any old programs you need to run) everything will be libc6-based and the above won't be necessary.
Debian 2.0 CDs should be available by the time this issue of LG is on the net, and for everyone but the fortunate few with fast and unlimited net connections a CD is the easiest installation method. Since my installation was an upgrade (done over the course of a couple of weeks) from a Debian 1.3 set-up, I didn't get to see if the installation process had improved until the other day, when I happened to notice that my wife's laptop had several hundred megabytes of free disk space. Unfortunately the machine (a 486 Thinkpad) lacks a CDROM drive and its modem is slow. After splitting off half of the single disk partition with Partition Magic I had two hundred megabytes to work with. Back at my machine, I proceeded to download seven disk image files from a mirror of ftp.debian.org, a total of nine and one-half megabytes. This may seem like a lot, but those seven disks provide a minimal but functional Linux system complete with internet access.
Once the tedious job of transferring the disk images to floppy was completed, I booted the Thinkpad from the first disk and began the installation. Like Redhat's, Debian's installation interface is full-screen and menu-driven, though it's not as fancy. One major difference is that while Redhat's installation segues right into package installation and X configuration, Debian is more of a two-stage process. After the base installation is complete, the user reboots the machine; once the new Debian system has booted up (either from a custom boot-disk created during installation or directly from the hard disk) the user is prompted to set the root password and create a user account. The dselect package installer/manager then starts up, but selecting and installing packages can be postponed, which is what I decided to do.
Debian's two-stage installation method makes sense to me. Why mess with packages before ascertaining that the installation is truly bootable and error-free? Another reason for waiting to run dselect involves network connections. Although both Redhat and Debian have PPP configuration tools, neither has ever worked flawlessly for me. I always have to do some fine-tuning of the /etc/ppp files, though Debian's pppconfig utility came the closest to getting my configuration right. My ISP is a particularly difficult one to connect to using Linux; I'm certain that for many other providers these net configuration tools work without the necessity of file-tweaking afterwards.
Once a PPP connection can be established, dselect can be used to retrieve via FTP any of the distribution's numerous packages. Dselect can also install packages from an NFS-mounted filesystem, a local disk, or a mounted CDROM.
Eventually there will be some sort of graphical interface to dselect and dpkg, but this task has proven to be a difficult one. As a first step, an application called apt is under development; in its current state it enable a user to install packages from a combination of remote and local sources in one operation. If a package from the remote server is more recent than the local one the remote package will be installed instead. In effect apt allows installation primarily from a CDROM, with any superseded packages downloaded from a remote server.
The Debian developers are very careful to keep the main distribution packages completely free in the GNU sense of the word. The least bit of restrictive licensing, even if source is available, causes the package to be placed in a separate directory, /nonfree. These packages are still freely available, but licensing restrictions prevent some from being included on CDROMs.
I predict that even with the installation improvements in Debian 2.0, it will continue to be a technical user's distribution. This may change when the proposed replacement for dselect is finished. The Debian community nonetheless continues to grow, with over four hundred developers maintaining packages. The selection of available packages is immense, with at least as many pieces of software available in *.deb format as there are in *.rpm format. I would recommend Debian for users who have cut their teeth on another distribution, but for beginners I still will recommend Redhat. Just remember, if you can get past the unintuitiveness of dselect package installation, the rest is a breeze!