debtree — package dependency graphs on steroids

Introduction

Advanced usage examples

  1. Create a build dependency graph
  2. Visualize what would happen when installing a package
  3. Dependencies on virtual packages
  4. Reverse dependencies

A reverse dependency graph shows why a package is installed: what other packages depend on it.

This graph shows only installed packages (the -I option), with the reverse dependencies in light blue. By default only one level of reverse dependencies is displayed. In this example three levels are included as a result of using the option --rdeps-depth=3. To show only reverse dependencies, add the option --max-depth=0.

The colors of the arrows have the same meaning as for "forward" dependencies. The inclusion of Recommends is controlled by the --no-recommends option; displaying reverse dependencies of type Suggests is not supported.

The graph will always include all direct reverse dependencies (both on the package itself and all virtual packages provided by it). In the example some packages depend on apt itself, and others on libapt-pkg-....

As shown for debconf, the number of indirect reverse dependencies that gets displayed, is by default limited to five, but that can be changed by using the option --max_rdeps=n. When the individual packages are not shown, the number of packages per type of dependency is shown next to their arrows.

It is possible to generate graphs that show all reverse dependencies, both installed and not installed, but be warned that such graphs are likely to explode in size.

Additional examples can be found in the author's blog.

$ debtree -I --rdeps-depth=3 apt


Dependency graph for pidentd
Generated .dot file: DOT
Full-sized images: PS | PNG | SVG