Debian GNU/Linux: The User-Community Developed Distribution of Linux A Linux distribution is an integrate suite of software built around Linus Tolvalds' kernel. Distributions provide an easy to install mechanism for crafting a working Linux system. They are extremely complicated and several different ones are available. I have personally used four different distributions: SLS, Slackware, Red Hat, and Debian. Since I have written about each of the others in previous columns, I'll focus on Debian this month. Ian Murdock founded the Debian project over two years ago. His vision was for a community-developed Linux distribution, not unlike the effort that has made the Linux kernel such a success. As the Debian project has matured it has become one of the few distributions of Linux that can be upgraded on a running system with little danger of breaking things (Red Hat also makes this claim, Slackware often breaks when the base system is upgraded). Debian has the most comprehensively considerate packaging system of the four distributions that I have reviewed. A package is a set of related software, its documentation, and installation and configuration instructions for the package management software. Debian makes provision for package conflicts, dependencies, recommendations, suggestions and alternatives. Also a flexible system of pre-install, post-install, pre-remove, and post-remove scripts can be provided by each package maintainer to fine-tune the installation process. As a result of this powerful packaging infrastructure each Debian developer can concentrate on making a high-quality release of their part of the system - the packaging system takes care of most of the possible problems. As a result of this modularity, many of Debian's installation scripts are very, very nice. For example, the script to configure X prompts for several advanced server options (Red Hat and Slackware are content to get a simple, working XF86Config file). All in all, the Debian packaging system is so compelling to me that I have decided to join the project as a developer! This powerful infrastructure implies additional complexity. The extra complexity requires that both user and developer need to deal with resolving the conflicts and dependencies that may exist between several of the packages distributed with the system. In the end this extra consideration solves many problems of software conflict (such as those endemic in the Microsoft Windows world) and provides control for the system administrator in getting an extremely powerful workstation environment configured in the shortest possible period of time. For the system installer, the curses-based dselect program is designed to make package selection and conflict resolution simple. But the first time through was a bit disorienting for me. After I used it a few times, it suddenly clicked and the concepts became crystal clear. My recommendation: go slow the first time and read all the available documentation (http://www.debian.org is a good place to start). Here are some suggestions on using dselect. First, if two packages conflict, only one can be installed. Therefore, decide which package you prefer and select it (with the '+' key in dselect). Secondly, if a package depends on another package, you will need to make sure the other package is selected for installation (in general, the system will refuse to install software unless its prerequisites are met). Finally, any "recommended" packages will also be flagged as "problems" if they have not been selected (though they will be installed anyway should you ignore the recommendations). Debian is not perfect. I have found several bugs and a few things still don't work quite right. However, this is true of every distribution I have tried. In fact, I have found Debian to be, overall, as good or better than the others in terms of bugs. Debian has a bug tracking system to which I have already submitted several bug reports. Some of these problems have already been addressed (one of them was patched and fixed within 24 hours of my report)! I heard that Red Hat also has a bug tracking system (though I never used it). Slackware is the big loser in this category (and the declining quality of that distribution may be reflected, in part, by the lack of a good bug tracking system). The Debian installation is (like the rest of the system) very streamlined and modular (it even has a Novice mode which will install the system with virtually no questions asked - obviously not a good choice unless you are converting a machine from some other operating system and have no need to save anything from the harddisk). Debian uses a boot disk (with just a kernel and some preliminary boot-up help), a root disk, and three base disks which consist of the essential packages from the base system (about 15 Megs). Debian doesn't yet provide a comprehensive collection of alternative boot disks with kernels suporting unusual hardware. Red Hat, in my experience, has the most comprehensive set of alternative kernel images of any distribution. Thus, Red Hat more easily supports more hardware than the others. However, Debian contains a boot-floppies package which can be used by any user who needs to make a custom set of boot floppies. Together with the source package, one can create (for friend or client) a set of boot floppies with support for any hardware that the Linux kernel supports. I haven't looked into it all that much, but my quick look suggests that Debian (again) has the infrastructure in place to make support for new and/or unusual hardware fairly straightforward to add via the boot-floppies and source packages. Right now, the Debian developers are upgrading the distribution to ELF. Since there is so much software in Debian, this will take several months to complete. Therefore, one should stick with the 0.93R6 release (which is very stable). Unfortunately, it is hard to get a CD with the October 26th release of Debian on it. Pacific HiTech is reported to be planning a release shortly. Other vendors will almost certainly follow. The Philadelphia Area Linux User's Group (Philly-LUG) is now forming! Meetings will be held every Tuesday evening (Beginning December 5) from 7-9 PM at the High Wire Gallery, 137 N 2nd ST. The Gallery is charging us $10 for the evening and the price will be divided among attendants (So if we get 20 people to attend, the price will be $0.50/person). The group is a spin off from PACS' Unix SIG - the exact relationship with PACS has yet to be worked out. Thanks to Shemu-ail Ben-Mosh (shemuail@netaxs.com) for agreeing to coordinate the meetings and for finding a cheap space. Next Month's Unix SIG Meeting will further discuss Debian GNU/Linux. Both from the users, consultants, and developers perspective.