DEBTREE(1) | DEBTREE(1) |
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 `graphviz'.
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.
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 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 occurrences the package name will be shown between square brackets: `[...]'.
See also the --show-installed option below.
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.
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: `?...?'.
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.
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.
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.
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.
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).
If architecture `all' is specified, all build dependencies will be shown. If any build dependencies have `architecture conditions', those will be displayed in a graph.
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.
This option will be ignored if used in combination with the --with-suggests option.
This option will be ignored if used in combination with the --no-conflicts option.
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.
By default only one level is displayed. Use this option to display more levels. Implies --show-rdeps.
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.
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.
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.
Displays additional informational and debug messages; can be repeated up to three times.
debtree can be configured to limit the size and complexity of dependency graphs. This is done using two lists:
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 complex.
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-maint.alioth.debian.org/debtree.
Frans Pop <elendil@planet.nl>.
2009-09-12 | Debian Project |