table of contents
DEBTREE(1) | DEBTREE(1) |
NAME¶
debtree - show relationships between packagesSYNOPSIS¶
debtree [ options] packageDESCRIPTION¶
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.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.OPTIONS¶
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.
- --show-rdeps, -R
- Also show reverse dependencies of the package and any
virtual packages it provides.
- --build-dep, -b
- Show build dependencies instead of package dependencies.
- --arch=architecture
- 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.
- --with-suggests, -S
- Include suggested packages; dependencies of suggested
packages are never included.
- --no-recommends
- Don't show recommended packages.
- --no-alternatives
- Only show the first package from a set of alternative
dependencies. Effectively this shows what package would be installed by
default (in most cases).
- --no-provides
- Don't show virtual packages provided by the requested
package.
- --max-providers=number
- When there are multiple packages providing a virtual
package, only show the providing packages if there are less than this
number. Default is 3.
- --no-versions
- Don't show the versions for versioned dependencies.
- --no-conflicts
- Don't show unversioned conflicts.
- --versioned-conflicts, -VC
- Include versioned conflicts; by default only unversioned
conflicts are shown.
- --max-depth=number
- Limit the number of levels of dependencies that is
traversed.
- --rdeps-depth=number
- The maximum number of levels for reverse dependencies.
- --max-rdeps=number
- Limit the display of indirect reverse dependencies.
- --no-skip
- Also display dependencies that are suppressed by default
(e.g. libc6).
- --show-all
- Display the full dependency tree.
- --rotate, -r
- Draw the graph top-town instead of left-to-right.
- --condense
- 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 paths.
- --quiet, -q
- Suppress any informational/warning messages.
- --verbose, -v
- Increase verbosity.
CONFIGURATION¶
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:
`{...}'.
EXAMPLES¶
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.- $ debtree dpkg >dpkg.dot
- Generate the dependency graph for package dpkg and save the output to a file `dpkg.dot'.
- $ 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).
SEE ALSO¶
dot(1). prune(1). gvpr(1).AUTHOR¶
Frans Pop <elendil@planet.nl>.2009-09-12 | Debian Project |