Table of Contents
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,
a complete set of office applications, including the LibreOffice productivity suite, Gnumeric and other spreadsheets, WYSIWYG editors, calendars.
More than 63879 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. Other 1082 software suites are available as Debian packages, but are not formally part of Debian due to license restrictions.
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 Section 7.4, “What is a Debian control file?”) 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.
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.
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
package.
This 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 package, 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-depfoo
# apt-get source --buildfoo
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
Section 10.2, “What tools does Debian provide to build custom kernels?”.
There is a list of packages which still need to be packaged for Debian, the Work-Needing and Prospective Packages list.
For more details about adding missing things, see Chapter 13, Contributing to the Debian Project.
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).
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 it. 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.
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
.
For a more verbose description, use:
dpkg --status foo
To view versions of all installed packages, run:
dpkg -l
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 if a system is Debian GNU/Linux.
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 to use.
Nearly all of the software in Debian supports UTF-8 as character set. Legacy character sets, such as ISO-8859-1 or ISO-8859-2, should be considered obsolete.
Currently, support for German-, Spanish-, 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/
.
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 this writing (2016-03), ezmlm-idx
is available in experimental only (mlmmj
is similar, and shipped with Debian jessie);
djbdns
is available in sid (unstable)
only, see Bug #516394 and
Bug #796118 for details and
see dbndns
for a similar alternative;
the publicfile
software is still not free software, a
publicfile-installer
package is
available from Debian's contrib section.
Other software of Dan J. Bernstein (qmail
, daemontools
, ucspi-tcp
) is shipped with Debian.
Google Earth is available for GNU/Linux from Google's web site, but not only it
is 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.
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.
Firmware refers to embedded software which controls electronic devices. Many devices require firmware to operate. Historically, firmware would be built into the device's ROM or Flash memory, but more and more often, a firmware image has to be loaded into the device RAM by a device driver during device initialisation.
Some devices require non-free firmware to work properly. And there could be firmware updates in the future.
In Debian release 11 (bullseye) and older, Debian did not include non-free firmware
on official images and live installations. For Debian 12 onwards, all the
packaged non-free firmware binaries that Debian can distribute have been moved
to a new component in the Debian archive, called
non-free-firmware
. If you're upgrading from an older release
of Debian and you need these firmware binaries, make sure that your sources.list
uses this new component:
http://deb.debian.org/debian bookworm main non-free-firmware contrib non-free
For more information please refer to Firmware information in the Debian Wiki.
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.