software.sgml 10.5 KB
Newer Older
<!-- retain these comments for translator revision tracking -->
<!-- Original version: $Revision: 1.34 $ -->
3 4 5 6 7
<chapt id="software">Software available in the Debian system

<sect id="apps">What types of applications and development software are
  available for &debian;?

Josip Rodin's avatar
Josip Rodin committed
<p>Like most Linux distributions, &debian; provides:
9 10
  <item>the major GNU applications for software development, file
11 12 13 14 15
    manipulation, and text processing, including gcc, g++, make, texinfo,
    Emacs, the Bash shell and numerous upgraded Unix utilities,
  <item>Perl, Python, Tcl/Tk and various related programs, modules and
    libraries for each of them,
  <item>TeX (LaTeX) and Lyx, dvips, Ghostscript,
16 17
  <item>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,
19 20
  <item>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,
  <item>a complete set of office applications, including the
    LibreOffice productivity suite, Gnumeric and other spreadsheets,
    WYSIWYG editors, calendars.
26 27

Josip Rodin's avatar
Josip Rodin committed
<p>More than &main-pkgs; packages, ranging from news servers and readers
29 30 31
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 &contrib-nonfree-pkgs; software suites are available as Debian
33 34 35 36
packages, but are not formally part of Debian due to license restrictions.

<sect id="softwareauthors">Who wrote all that software?

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

41 42 43 44 45
<p><em>Maintainers</em> who package this software for the &debian; system are
listed in the Debian control file (see <ref id="controlfile">) that comes with
each package.  The Debian changelog, in
<tt>/usr/share/doc/PACKAGE/changelog.Debian.gz</tt>, mentions the people who've
worked on the Debian packaging too.
46 47

<sect id="pkglist">How can I get a current list of programs that have been
48 49
  packaged for Debian?

50 51 52 53
<p>A complete list is available from any of the <url name="Debian
mirrors" id="">, in the file
<tt>indices/Maintainers</tt>.  That file includes the package names
and the names and e-mails of their respective maintainers.

Josip Rodin's avatar
Josip Rodin committed
<p>The <url name="WWW interface to the Debian packages"
id=""> conveniently summarizes the packages
in each of about thirty "sections" of the Debian archive.

59 60 61 62 63
<sect id="buildenv">How can I install a developer's environment to build packages?

<p>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 <package>build-essential</package> package.  This is a
65 66 67 68 69 70 71 72 73 74 75
meta-package or place-holder package which depends on the standard
development tools one needs to build a Debian package.

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

<p>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 <package>build-essential</package>) needed to build
the package, this is known as <tt>Build-Dependencies</tt>. To install all the
78 79 80 81
packages needed to build a given source package and then build said source
package you can just run:

82 83
# apt-get build-dep <var>foo</var>
# apt-get source --build <var>foo</var>
84 85 86 87

<p>Notice that if you want to build the Linux kernels distributed by Debian
you will want to install also the <package>kernel-package</package> package.
For more information see <ref id="customkernel">.

90 91
<sect id="missing">What is missing from &debian;?

<p>There is a list of packages which still need to be packaged for Debian, the <url id="" name="Work-Needing
93 94
and Prospective Packages list">.

<p>For more details about adding missing things, see <ref id="contrib">.

97 98
<sect id="no-devs">Why do I get "ld: cannot find -lfoo" messages when
  compiling programs? Why aren't there any files in Debian library
99 100 101 102 103 104 105

<p>Debian Policy requires that such symbolic links (to 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).

106 107
<sect id="java">(How) Does Debian support Java?

108 109
<p>Several <em>free</em> 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.
111 112

<p>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.
116 117 118 119

<p>Please refer to the <url name="Debian Java FAQ"
id=""> for more
120 121

<sect id="isitdebian">How can I check that I am using a Debian system, and
  what version it is?
123 124

<p>In order to make sure that your system has been installed from the
Javier Fernandez-Sanguino Peña's avatar
Javier Fernandez-Sanguino Peña committed
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
real Debian base disks,
use the <example>lsb_release -a</example> 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

<p>You can also check for the existence of
141 142 143 144
<tt>/etc/debian_version</tt> file, which contains a single one-line entry
giving the version number of the release, as defined by the package

Josip Rodin's avatar
Josip Rodin committed
<p>Users should be aware, however, that the Debian system consists of many
146 147 148 149
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 <tt>foo</tt>, use the command <tt>dpkg --list foo</tt>.
Josip Rodin's avatar
Josip Rodin committed
150 151
For a more verbose description, use:
  <example>dpkg --status foo</example>
152 153
To view versions of all installed packages, run:
  <example>dpkg -l</example>

Javier Fernandez-Sanguino Peña's avatar
Javier Fernandez-Sanguino Peña committed
155 156 157
<p>Note that the existence of the program <tt>dpkg</tt> 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;.
Javier Fernandez-Sanguino Peña's avatar
Javier Fernandez-Sanguino Peña committed

160 161
<sect id="nonenglish">How does Debian support non-English languages?

Josip Rodin's avatar
Josip Rodin committed
163 164 165 166
  <item>&debian; is distributed with keymaps for nearly two dozen
    keyboards, and with utilities (in the <tt>kbd</tt> package) to install,
    view, and modify the tables.
    <p>The installation prompts the user to specify the keyboard he will use.
  <item>Nearly all of the software in Debian supports UTF-8 as
168 169 170
    character set. Legacy character sets, such as ISO-8859-1
    or ISO-8859-2, should be considered obsolete.
  <item>Currently, support for German-, Spanish-, French-,
171 172
    Hungarian-, Italian-, Japanese-, Korean-, Dutch-, Polish-, 
    Portuguese-, Russian-, Turkish-, and Chinese-language
    manual pages is provided through the <tt>manpages-LANG</tt> packages
174 175
    (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
Josip Rodin's avatar
Josip Rodin committed
176 177
    <p>For example, in the case of the Italian-language manual pages,
178 179
    LC_MESSAGES needs to be set to 'italian'.  The <prgn/man/ program will
    then search for Italian manual pages under <tt>/usr/share/man/it/</tt>.
180 181

<sect id="qmail">Where is ezmlm/djbdns/qmail?

184 185 186 187 188 189 190
<p>Dan J. Bernstein used to distribute <url id=""
name="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 <url id="" name="FAQ
from distributors"> for his distribution terms.

191 192 193 194 195 196 197 198 199 200 201 202
<p>As of this writing (2016-03), <package/ezmlm-idx/ is available in
experimental only (<package/mlmmj/ is similar, and shipped with Debian jessie);
<package/djbdns/ is available in sid (unstable) only, see <url name="Bug
#516394" id=""> and <url name="Bug #796118"
id=""> for details and see <package/dbndns/ for a
similar alternative; the <tt>publicfile</tt> software is still not free
software, a <package/publicfile-installer/ package is available from Debian's
contrib section.

<p>Other software of Dan J. Bernstein (<package/qmail/, <package/daemontools/,
<package/ucspi-tcp/) is shipped with Debian.


204 205 206

<sect id="flash">Where is a player for Flash (SWF)?

<p>Debian ships both <package/gnash/ and <package/swfdec/: two free
208 209 210 211
SWF movie players.

<sect id="googleearth">Where is Google Earth?

212 213
<p>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.
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
However, <package/googleearth-package/ (in the contrib-section) might be
helpful in using this software.

<sect id="voip">Where is VoIP software?

<p>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.  <package/ekiga/ is
one of the popular clients.

<sect id="nonfreewireless">I have a wireless network card which doesn't work
with Linux.  What should I do?

<p>Buy one which does :)

<p>Alternatively, use <package/ndiswrapper/ to use a driver for Windows (if you
have one) on your Linux system.  See the <url name="Debian Wiki ndiswrapper
230 231
page" id=""> for more information.