Man Linux: Main Page and Category List


       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.

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


       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

       --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 allready installed alternatives will be included for
              satisfied dependencies (unless the --no-alternatives  option  is
              also given).

              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

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

              Don’t show recommended packages.

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

              Only   show   the  first  package  from  a  set  of  alternative
              dependencies. Effectively  this  shows  what  package  would  be
              installed by default (in most cases).

              Don’t show virtual packages provided by the requested package.

              When  there  are  multiple packages providing a virtual package,
              only show the providing packages if there  are  less  than  this
              number. Default is 3.

              Don’t show the versions for versioned dependencies.

              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.

              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

              The option can be used both to reduce the size of graphs.

              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.

              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.

              Also display dependencies that are suppressed by  default  (e.g.

              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.

              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

              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.

              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.


       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.


       Below  are  some  basic usage examples for debtree.  For more extensive
       examples of graphs and additional information, please see  the  debtree
       website: htpp://

       $ debtree dpkg >
              Generate  the  dependency  graph  for  package dpkg and save the
              output to a file ‘’.

       $ dot -Tsvg -o dpkg.svg
              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).


       dot(1).  prune(1).  gvpr(1).


       Frans Pop <>.