The Debian GNU/Linux FAQ - Software available in the Debian system

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ next ]

# The Debian GNU/Linux FAQ
Chapter 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:

- the major GNU applications for software development, file manipulation, and text processing, including gcc, g++, make, texinfo, Emacs, the Bash shell and numerous upgraded Unix utilities,

- Perl, Python, Tcl/Tk and various related programs, modules and libraries for each of them,

- TeX (LaTeX) and Lyx, dvips, Ghostscript,

- the Xorg windowing system, which provides a networked graphical user interface for Linux, and countless X applications including the GNOME, KDE and Xfce desktop environments.

- a full suite of networking applications, including servers for Internet protocols such as HTTP (WWW), FTP, NNTP (news), SMTP and POP (mail) and DNS (name servers); relational databases like PostgreSQL, MySQL; also provided are web browsers including the various Mozilla products [1],

- a complete set of office applications, including the OpenOffice.org productivity suite, Gnumeric and other spreadsheets, WYSIWYG editors, calendars.

More than 28200 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 187 software suites are available as Debian packages, but are not formally part of Debian due to license restrictions.

## 5.2 Who wrote all that software?

For each package the authors of the program(s) are credited in the file `/usr/share/doc/PACKAGE/copyright`, where PACKAGE is to be substituted with the package's name.

Maintainers who package this software for the Debian GNU/Linux system are listed in the Debian control file (see What is a Debian control file?, Section 7.4) that comes with each package. The Debian changelog, in `/usr/share/doc/PACKAGE/changelog.Debian.gz`, mentions the people who've worked on the Debian packaging too.

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

A complete list is available from any of the `Debian mirrors`, in the file `indices/Maintainers`. That file includes the package names and the names and e-mails of their respective maintainers.

The `WWW interface to the Debian packages` conveniently summarizes the packages in each of about thirty "sections" of the Debian archive.

## 5.4 How can I install a developer's environment to build packages?

If you want to build packages in your Debian system you will need to have a basic development environment, including a C/C++ compiler and some other essential packages. In order to install this environment you just need to install the `build-essential`. This package is a meta-package or place-holder package which depends on the standard development tools one needs to build a Debian package.

Some software can, however, need additional software to be rebuilt, including library headers or additional tools such as `autoconf` or `gettext`. Debian provides many of the tools needed to build other software as Debian packages.

Finding which software is precisely required can be tricky, however, unless you are planning on rebuilding Debian packages. This last task is rather easy to do, as official packages have to include a list of the additional software (besides the packages in `build-essential`) needed to build the pacakge, this is known as `Build-Dependencies`. To install all the packages needed to build a given source package and then build said source package you can just run:

         # apt-get build-dep foo
         # apt-get source --build foo

Notice that if you want to build the Linux kernels distributed by Debian you will want to install also the `kernel-package` package. For more information see What tools does Debian provide to build custom kernels?, Section 10.2.

## 5.5 What is missing from Debian GNU/Linux?

A list of packages which are still needed to be packaged for Debian exists, the `Work-Needing and Prospective Packages list`.

For more details about adding the missing things, see How can I become a Debian software developer?, Section 13.1.

## 5.6 Why do I get "ld: cannot find -lfoo" messages when compiling programs? Why aren't there any libfoo.so files in Debian library packages?

Debian Policy requires that such symbolic links (to libfoo.so.x.y.z or similar) are placed in separate, development packages. Those packages are usually named libfoo-dev or libfooX-dev (presuming the library package is named libfooX, and X is a whole number).

## 5.7 (How) Does Debian support Java?

Several free implementations of Java technology are available as Debian packages, providing both Java Development Kits as well as Runtime Environments. You can write, debug and run Java programs using Debian.

Running a Java applet requires a web browser with the capability to recognize and execute them. Several web browsers available in Debian, such as Mozilla or Konqueror, support Java plug-ins that enable running Java applets within them.

Please refer to the `Debian Java FAQ` for more information.

## 5.8 How can I check that I am using a Debian system, and what version is it?

In order to make sure that your system has been installed from the real Debian base disks, use the

         lsb_release -a

command. It will display the name of the distribution (in Distributor ID field) and the version of the system (in Release and Codename fields). The following is an example run in a Debian system:

         $ lsb_release -a
         No LSB modules are available.
         Distributor ID: Debian
         Description:    Debian GNU/Linux 7.4 (wheezy)
         Release:    7.4
         Codename:   wheezy

You can also check for the existence of `/etc/debian_version` file, which contains a single one-line entry giving the version number of the release, as defined by the package `base-files`.

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 --list foo`. To view versions of all installed packages, run:

         dpkg -l

For a more verbose description, use:

         dpkg --status foo

Note that the existence of the program `dpkg` shows that you should be able to install Debian packages on your system. However, since the program has been ported to many other operating systems and architectures, this is no longer a reliable method of determining is a system Debian GNU/Linux.

## 5.9 How does Debian support non-English languages?

- Debian GNU/Linux is distributed with keymaps for nearly two dozen keyboards, and with utilities (in the `kbd` package) to install, view, and modify the tables.

  The installation prompts the user to specify the keyboard he will use.

- Vast majority of the software we packaged supports entering non-US-ASCII characters used in other Latin languages (e.g. ISO-8859-1 or ISO-8859-2), and a number of programs support multi-byte languages such as Japanese or Chinese.

- Currently, support for German-, Spanish-, Finnish-, French-, Hungarian-, Italian-, Japanese-, Korean-, Dutch-, Polish-, Portuguese-, Russian-, Turkish-, and Chinese-language manual pages is provided through the `manpages-LANG` packages (where LANG is the two-letter ISO country code). To access an NLS manual page, the user must set the shell LC_MESSAGES variable to the appropriate string.

  For example, in the case of the Italian-language manual pages, LC_MESSAGES needs to be set to 'italian'. The `man` program will then search for Italian manual pages under `/usr/share/man/it/`.

## 5.10 Where is pine?

Due to its restrictive license, it's in the non-free area. Moreover, since license does not even allow modified binaries to be distributed, you have to compile it yourself from the source and the Debian patches.

The source package name is `pine`. You can use the `pine-tracker` package to be notified about when you need to upgrade.

Note that there are many replacements for both pine and pico, such as `mutt` and `nano`, that are located in the main section.

## 5.11 Where is qmail/ezmlm/djbdns?

Dan J. Bernstein used to distribute `all software he has written` with a restrictive license which does not allow modified binaries to be distributed. In november 2007 however, Bernstein said "[...] i have decided to put all of my future and [...] past software into the public domain". See `FAQ from distributors` for his distribution terms.

As of 2008-09, `daemontools`, `djbdns` and `ucspi-tcp` are shipped with Debian lenny (in main). As of this writing (2008-09), `qmail` nor `ezmlm` is shipped with Debian main; see `Bug #457318 (ITP qmail)` and `Bug #469193 (ITP ezmlm-idx)` for the current status.

As of 2008-09, `publicfile` was still not free software.

## 5.12 Where is a player for Flash (SWF)?

Debian ships both `gnash` and `swfdec`: two free SWF movie players.

## 5.13 Where is Google Earth?

Google Earth is available for GNU/Linux from Google's web site, but is not only not Free Software, but is completely undistributable by a third party. However, `googleearth-package` (in the contrib-section) might be helpful in using this software.

## 5.14 Where is VoIP software?

Two main open protocols are used for Voice Over IP: SIP and H.323. Both are implemented by a wide variety of software in Debian main. `ekiga` is one of the popular clients.

## 5.15 I have a wireless network card which doesn't work with Linux. What should I do?

Buy one which does :)

Alternatively, use `ndiswrapper` to use a driver for Windows (if you have one) on your Linux system. See the `Debian Wiki ndiswrapper page` for more information.

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ next ]

The Debian GNU/Linux FAQ