OnWorks favicon

debtree - Online in the Cloud

Run debtree in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command debtree that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



debtree - show relationships between packages


debtree [options] package


Generates dependency graphs (in `dot' syntax) for the specified package. The output is
written to STDOUT and can be used as input for the command dot(1) from the package

Dependency graphs will by default show (pre-)dependencies, recommended packages,
unversioned conflicts, and virtual packages provided by the requested package. Optionally
also suggested packages and versioned conflicts can be included.

Besides graphs showing regular dependencies, debtree can also generate graphs showing the
reverse dependencies of and the build dependencies for a package.

Dependency types
The type of dependency between packages is by line type and the color of the arrow
indicating the dependency:
Build-Depends: dark gold, bold
Build-Depends-Indep: light gold
Pre-Depends: purple, bold
Depends: blue
Recommends: black
Suggests: black, dotted
Conflicts: red
Provides: green, inverted arrow

By default the version requirements for versioned dependencies and conflicts will be shown
alongside the arrow.

Alternative dependencies
Alternative dependencies will be shown within a single node (a rectangular shape with
horizontal lines separating the packages).

An alternative dependency will be indicated by a single arrow, unless one or more of the
dependencies are versioned. In that case a separate arrow (ending at the relevant package)
showing the version requirement is drawn. Arrows for dependencies on a package in a set of
alternatives will originate at the correct package in the set, though in some cases this
may be on the separation line between two alternatives.

If a package included in an alternative dependency also needs to be displayed separately
or is also part of some other alternative dependency set, its dependencies will only be
included once, with the package's first occurrence. For the secondary occurences the
package name will be shown between square brackets: `[...]'.

See also the --show-installed option below.

Virtual packages
Virtual packages will be shown as an octagonal shape with a green inverted arrow from the
providing package(s).

If only a single package provides the virtual package, this package (and its dependencies)
will be displayed in the graph.

If there are multiple packages that provide the virtual package, they will be shown within
a single node with rounded corners but only if there are less than three (or the number
set by the --max-providers option). If there are more than that number, this will be
indicated by an ellipsis (`...') in the node; no individual packages will be shown but the
number of providing packages is indicated alongside the arrow. Dependencies of the
providing packages will not be shown.

A regular dependency graph will by default also show any virtual packages provided by the
requested binary package.

Unknown packages
Packages that are listed as dependency, but that are unknown in the package database will
be displayed with a reddish shade. In the case of alternative dependencies, the package
name will be shown between question marks: `?...?'.

Package versions
If multiple versions of a package are available, the dependency information for the
highest available version will be used, with one exception. If the --show-installed option
is used, the installed version will be used for packages that are installed on the system.

Managing graph size and complexity
debtree offers several mechanisms to help reduce the size of dependency graphs of packages
with large or complex dependency trees. The first mechanism is to limit what types of
dependencies are included, for example excluding Recommended or Conflicting packages from
the graph. The second mechanism is the configuration of lists of skip and end packages;
see the section CONFIGURATION below for details. The last mechanism is to place a hard
limit on the depth of the dependency tree.

It is not possible to include the dependencies of suggested packages. Doing so would in
almost all cases result in an explosion of the size of graphs.

For some packages it is unfortunately almost impossible to generate a usable dependency
graph due to the number of dependencies they have. This is often the case for meta
packages, for example those for KDE or GNOME.


This program follows the usual GNU command line syntax, with long options starting with
two dashes (`-'). An overview of supported options is included below.

--show-installed, -I
Show which packages are installed on the system.

The nodes for packages which are installed on the system will be colored light
green. For alternative dependencies, only installed packages will be included (an
ellipsis is used to indicate omitted alternatives); for unsatisfied alternative
dependencies, all alternatives will be included.

--show-rdeps, -R
Also show reverse dependencies of the package and any virtual packages it provides.

Reverse dependencies that are not installed will be colored light yellow; installed
ones light blue. Displaying reverse dependencies of type Suggests is not supported.

Use of the option --show-installed in combination with this option is recommended.
See also the options --rdeps-depth and --max-rdeps. This option is ignored if
--build-dep is also specified.

--build-dep, -b
Show build dependencies instead of package dependencies.

Suggested packages will never be included in a build dependency graph. If there
are alternative packages to satisfy a dependency, normally only the first
alternative will be shown. However, when used in combination with the
--show-installed option, all already installed alternatives will be included for
satisfied dependencies (unless the --no-alternatives option is also given).

Specify the architecture (or `all') for the build dependency graph. If the option
--buildep option is not present, this option will be ignored. Default is the
architecture of the system on which the command is being run.

If architecture `all' is specified, all build dependencies will be shown. If any
build dependencies have `architecture conditions', those will be displayed in a

If an architecture is specified (including the default), only build dependencies
that are relevant for that architecture will be shown; build dependencies for other
architectures will be ignored.

--with-suggests, -S
Include suggested packages; dependencies of suggested packages are never included.

Don't show recommended packages.

This option will be ignored if used in combination with the --with-suggests option.

Only show the first package from a set of alternative dependencies. Effectively
this shows what package would be installed by default (in most cases).

Don't show virtual packages provided by the requested package.

When there are multiple packages providing a virtual package, only show the
providing packages if there are less than this number. Default is 3.

Don't show the versions for versioned dependencies.

Don't show unversioned conflicts.

--versioned-conflicts, -VC
Include versioned conflicts; by default only unversioned conflicts are shown.

This option will be ignored if used in combination with the --no-conflicts option.

Limit the number of levels of dependencies that is traversed.

This option sets a limit to the number of levels debtree will recurse when
determining dependencies. Packages at the specified level will be treated as end
packages (see section CONFIGURATION below).

The option can be used both to reduce the size of graphs.

The maximum number of levels for reverse dependencies.

By default only one level is displayed. Use this option to display more levels.
Implies --show-rdeps.

Limit the display of indirect reverse dependencies.

When displaying multiple levels of reverse dependencies, a reverse dependency that
itself has a lot of reverse dependencies can really explode the graph. By default
up to 5 indirect reverse dependencies are shown individually.

Also display dependencies that are suppressed by default (e.g. libc6).

When selected, skip packages will be treated as end packages instead. This means
that dependencies that by default are not included in graphs, will now be shown,
but their dependencies will not. See also the section CONFIGURATION below.

Display the full dependency tree.

When selected, all default limits in the form of end and skip packages are
disabled and the full dependency graph for the package will be generated. See also
the section CONFIGURATION below.

This option implies the --no-skip option, but can be used in combination with the
--max-depth option. Note that this option does not affect the types of dependencies
that are included.

--rotate, -r
Draw the graph top-town instead of left-to-right.

Activates an option of dot(1) that can help reduce the clutter in dense graphs by
concentrating lines (relationships) between packages together for parts of their

--quiet, -q
Suppress any informational/warning messages.

--verbose, -v
Increase verbosity.

Displays additional informational and debug messages; can be repeated up to three


debtree can be configured to limit the size and complexity of dependency graphs. This is
done using two lists:

/etc/debtree/skiplist, ~/.debtree/skiplist
List of skip packages. Packages included in this list are completely excluded from
graphs. The list should only contain dependencies that are so common that including
them in graphs only clutters the graph and does not really add any information.
Examples are libc6 and zlib1g. If an alternative dependency contains only skip
packages it will be omitted; if it contains a mix of skip and non-skip packages,
the presence of the skip packages will be shown using an ellipsis ('...').

/etc/debtree/endlist, ~/.debtree/endlist
List of end packages. Packages included in this list are shown in the graph, but
their dependencies will not be shown. A diamond shape is used to indicate an end
package; in the case of alternative dependencies, the package name will be shown
between braces: `{...}'.

Preferably only packages that offer a functionality that is somewhat distinct from
its reverse dependencies should be included in this list. In some cases it may be
necessary to also include packages because their dependency tree is just too big or

If a list is present under the HOME directory of the user, that file will be used instead
of the default file in /etc/debtree/.

See also the options --no-skip, --show-all and --max-depth.


Below are some basic usage examples for debtree. For more extensive examples of graphs
and additional information, please see the debtree website: http://collab-

$ debtree dpkg >dpkg.dot
Generate the dependency graph for package dpkg and save the output to a file

$ dot -Tsvg -o dpkg.svg dpkg.dot
Use dot(1) to generate an SVG image from the `.dot' file.

$ debtree dpkg | dot -Tpng >dpkg.png
Generate the dependency graph for package dpkg as PNG image and save the resulting
output to a file.

$ debtree -b dpkg | dot -Tps | kghostview - &
Generate the build dependency graph for package dpkg in postscript format and view
the result using KDE's kghostview(1).

Use debtree online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands

  • 1
    abilint - validate an abigail ABI
    representation abilint parses the native
    XML representation of an ABI as emitted
    by abidw. Once it has parsed the XML
    Run abilint
  • 2
    abinit - Ab initio atomic-scale
    simulation software ...
    Run abinit
  • 3
    crlf - AME ...
    Run crlf
  • 4
    crlupdate - Mono Certficate Revocation
    List Downloader and Updater ...
    Run crlupdate
  • 5
    gaupol - editor for text-based subtitle
    files ...
    Run gaupol
  • 6
    gausssum - parses the output of a
    Gaussian, GAMESS or HyperChem job ...
    Run gausssum
  • More »