Provided by: debtree_1.1.0_all bug

NAME

       debtree - show relationships between packages

SYNOPSIS

       debtree [options] package

DESCRIPTION

       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 occurrences 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.

              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).

       --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.

              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.

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

       --no-recommends
              Don't show recommended packages.

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

       --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.

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

       --max-depth=number
              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.

       --rdeps-depth=number
              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.

       --max-rdeps=number
              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.

       --no-skip
              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.

       --skiplist=file
              File with the  list  of  custom  skip  packages.  This  overrides  global  skiplist
              configuration.  See also the section CONFIGURATION.

       --endlist=file
              File  with  the  list  of  custom  end  packages.  This  overrides  global  endlist
              configuration.  See also the section CONFIGURATION

       --show-all
              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.

       --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.

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

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: `{...}'.

              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, --skiplist, --endlist.

EXAMPLES

       Below are some basic usage examples for debtree.  For more extensive  examples  of  graphs
       and      additional      information,      please     see     the     debtree     website:
       https://salsa.debian.org/debian/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>.