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

The top graph for pident incudes three dependencies on virtual packages and shows how virtual packages and the packages that provide them can be displayed.

The first is a fairly common dependency on debconf | debconf-2.0 where the latter is a virtual package provided by either debconf or cdebconf. debconf has square brackets because it is also included in the alternative dependencies; cdebconf has curly brackets because its dependencies are not included anywhere in the graph.

The second is the virtual package inet-superserver. Because the maximum number of providers was set to 5 and there are 4 packages that actually provide this virtual package, all providing packages are shown. openbsd-inetd has square brackets because it was also displayed as the preferred alternative; for the others no dependencies are shown and thus their names have curly brackets.

The third is the virtual package ident-server. There are 7 packages that provide this virtual package, which is more than the maximum that was set. Therefore no individual providing packages are shown, but the total number of providing packages is shown alongside the arrow for the relationship. Note that the requested package pidentd is one of the providing package.

Adding the option -I (show installed packages) when generating this graph, could result in the bottom graph, which has the following changes:

  • as debconf is installed, debconf-2.0 is no longer shown and thus the providing packages are not shown either; the ellipsis in the second row indicates there are other packages that can satisfy the alternative dependency
  • as openbsd-inetd is installed, only that providing package is shown as alternative and thus again inet-superserver and its providing packages are no longer included
  • as pidentd is installed, only that providing package is shown for ident-server; as ident-server is provided by the requested package, this virtual package is still shown; the ellipsis in the second row indicates there are other (undisplayed) providing packages

Note that for this second graph the option --max-providers is no longer relevant.

$ debtree --max-providers=5 pident


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

$ debtree -I pident


Dependency graph for pidentd (with installed packages)
Generated .dot file: DOT
Full-sized images: PS | PNG | SVG