Previous Next Table of Contents

5. Software Available in the Debian system

5.1 What types of applications and development software are available for Debian GNU/Linux?

Like most Linux distributions, Debian GNU/Linux provides

Nearly 500 packages, ranging from news servers and readers to sound support, FAX programs, database and spreadsheet programs, image processing programs, communications, net, and mail utilities, Web servers, and even ham-radio programs are included in the distribution. Another 50 software suites are available as Debian packages, but are not formally part of the Debian distribution due to license restrictions.

5.2 Who wrote all that software?

5.3 How can I get a current list of programs that have been packaged for the Debian project?

A complete list is available from any of the Debian mirrors.

The file indices/Packages-Master-i386.gz provides a list, including short descriptions, of all packages that are available for computers with 80386 (or more advanced) chips. The file indices/Packages-Master-m68k.gz provides a similar list of packages that are available for computers with Motorola 68xxx CPUs.

The WWW interface to the Debian packages conveniently summarizes the packages in each of about twenty "sections" of the Debian archive, as well as the 10 most recently uploaded packages.

5.4 What's missing from Debian GNU/Linux?

A list of packages which are most urgently needed for the Debian distribution is maintained by Sven Rudolph. For more details, see the section on contributing to the Debian project.

5.5 Where is 'which'?

This is a historical question, no longer relevant, but is included with this FAQ because it may still hold the record as the single most frequently asked question on the Debian mailing lists.

The functionality of the Berkeley utility which is provided in the Bash shell by the built-in command type. To learn the path name for an executable file "foo", use the command type foo. To learn all the paths where "foo" can be found, use type -a foo.

To accommodate users' lack of familiarity with this (in this writer's opinion, obscure) feature of Bash, the Debian maintainers have built a package called debianutils, which includes a Bash script called which. This script includes only these lines:

#!/bin/bash
for i in $*; do
  type -all -path $i | head -1
done

The debianutils package is normally stored in the base section of the FTP archive, and is therefore part of the initial installation of every Debian system.

5.6 (How) Does Debian support Java?

The Java Development Kit from Sun is currently available as a Debian package (jdk_VVV-RRR_i386.deb). The JDK will allow you to run Java programs and applets, and write your own. If your kernel is properly configured (see below), the JDK will allow you to run Java programs just like other executables. The JDK package also includes a number of demo programs.

Debian's kernel is configured with Java support built in as a module (i.e., CONFIG_BINFMT_JAVA=m). Users who wish to build their own custom kernel can of course omit this if they choose. Once module support is available in the kernel, you need to make sure the module is loaded. You can do it at boot time by inserting the line binfmt_java in the file /etc/modules. Alternatively, you can install the module from the command line by executing the command insmod DIRNAME/binfmt_java.o where DIRNAME is the name of the directory where the modules that have been built for the version of the kernel now running are stored. On a system with the 2.0.0 version of the kernel, DIRNAME is likely to be /lib/modules/2.0.0/fs/. You can check that a module is loaded using the command lsmod.

Running a Java applet requires a browser with the capability to recognize and execute them. The Netscape browser that can be installed as a Debian package will run Java applets. (The Netscape source code is not publicly available. The Debian netscape package provides a wrapper which aids the installation and management of Netscape on a Debian system. This is actually a good example of the integration of commercial packages with the Debian system.)

A final note of mixed blessings: Sun's licensing policies on the JDK are becoming more restricted with time, so this package may not be available as part of the Debian distribution soon. It is possible that it may be available in the same way that Netscape is available for Debian Linux. Better news is that a number of ports are currently being developed with may provide attractive publicly-available alternatives.

5.7 What are all those directories (buzz/non-free/contrib/project) at the Debian FTP archives?

The software that's been packaged for Debian GNU/Linux is available in one of several directory trees on each Debian mirror site.

Top Level Directories

The Major Package Trees

Supplementary directories:

Of particular interest to developers:

Sub-directories

Within each of the major directory trees (Debian-1.1, non-free, and contrib, but not project/experimental), which is too small to subdivide), the binary packages reside in sub-directories whose names indicate the chip architecture for which they were compiled:

5.8 Is source code included with the system?

Source code is included for everything in the Debian system. Most of the license terms of programs in the system require that source code be distributed along with the programs, or that an offer to provide the source code accompany the programs.

Source code may or may not be available for packages in the "contrib" "non-free" directories, which are not formally part of the Debian system.

5.9 How can I check that I'm using a Debian system?

Check for the existence of the file /var/lib/dpkg/status. This contains a stanza reporting the status of each of the installed Debian packages on a system.

5.10 How can I tell what "version" of the Debian system I am using?

There is a file, /etc/debian_version, which contains a single one-line entry giving the version number of the release, as defined by the package base.

Users should be aware, however, that the Debian system consists of many parts, each of which can be updated (almost) independently. Each Debian "release" contains well defined and unchanging contents. Updates are separately available. For a one-line description of the installation status of package foo, use the command dpkg -l foo. (With no arguments, this command prints out versions of all installed packages.) For a more verbose description, use dpkg --status foo.

5.11 How does the Debian distribution support non-English languages?


Previous Next Table of Contents