Man Linux: Main Page and Category List


       debdeltas - compute deltas between Debian packages


       debdeltas [OPTION]... ARGS ...


       debdeltas  computes  deltas  between the old and new versions of Debian

       The explanation of what a delta is is in debdelta(1).


       In all of the following, ARGS can be, a Debian binary file (usually,  a
       file  ending  in  .deb),  or  a  directory  containing such files, or a
       Packages file (that is, an index file such as  those  found  in  Debian
       mirrors - even the zipped ones - see apt-ftparchive(1) ).  We will call
       cmdline all such args that are not related to an option.

       As a first step, debdeltas builds an internal list of Debian  packages.
       To  this  end,  it parses all  ARGS of the options --alt  , --old , and
       those ARGS given as non-option arguments  (the  aforementioned  cmdline
       args).  If  the  argument is a Debian package, debdeltas adds it to the
       list; if the argument is a directory, debdeltas  scans  it  for  Debian
       packages  to  be  added to the list; if the argument is Packages files,
       debdeltas parses it and adds all Debian packages to the list.

       Then  debdeltas  groups  all  found  Debian  packages   by   name   and

       For each group, the newest cmdline version is isolated, and then deltas
       are computed from all --old versions to that version.

       These deltas are stored in many delta files with appropriate  names  of
       the   form   name_oldversion_newversion_architecture.debdelta   ;   the
       location of the delta files is specified by the "--dir" option.

       Note that the location of  files  in  a  Packages  index  is  specified
       relative    to    the    base    of   the   mirror,   e.g.    Filename:
       pool/main/x/xxx/xxx_3_i386.deb For this reason, any  Packages  argument
       must  presented  with  a  long  path  (that contains at least the dists

       Note also that the same directory or index can be provided many  times,
       as --old, as --alt, and as cmdline argument.

       Note  also  that debdeltas will skip all packages that are smaller than


       --dir DIR
              force saving of deltas in this DIR (otherwise they go in the dir
              of the newer deb_file).

       --alt ARGS
              this  is  parsed  as  the non-option command line, but the found
              packages are never considered for a delta.  They are  considered
              though  when  --clean-deltas  is  used, to decide if to delete a
              delta; and are useful to find debs that are deleted from indexes
              and moved elsewhere. Multiple --alt can be specified.

       --old ARGS
              this  is  parsed  as the non-option command line, and the
              found packages are  considered  as  the  older  versions.
              Multiple --old can be specified.  Moreover, when scanning
              a Packages index, it is not an  error  if  files  do  not
              exist,  as  long  as  they  have  been  moved  in a --alt
              directory. Note that, if no --old is specified,  then  no
              deltas will be generated.

The double slash

       If  a  directory  path  is provided as argument to --dir, and it
       ends in // , then this triggers a specific behaviour related  to
       files   found   in   Packages   indexes  (as  presented  in  the
       commandline).  If  a  package  in   a   index   is   stored   in
       pool/main/x/xxx/xxx_3_i386.deb  ,  and  --dir is /tmp/foobar// ,
       then      the      delta      will       be       saved       in
       /tmp/foobar/pool/main/x/xxx/xxx_2_3_i386.deb.   The same is true
       for --alt (and is useful to find old versions of a package).


       --signing-key  KEY
              key used to sign the deltas (using GnuPG)

       -n N   how many deltas to produce at  maximum  for  each  unique
              package/arch (default unlimited)

              delete  deltas that upgrade to packages versions that are
              not found in the cmdline ARGS, and are at least two  days
              old (according to mtime).

              do not include MD5 info in debdelta.

              create  a  patch that can only be used if the old .deb is

       --delta-algo ALGO
              use  a  specific  backend  for  computing  binary  diffs;
              possible values are: xdelta xdelta-bzip xdelta3 bsdiff

       -M Mb  maximum memory  to use (for ’bsdiff’ or ’xdelta’).

       --test check that the patch does apply.

       -v     verbose (can be added multiple times).

       -d     print  traceback on errors; save useful info in temporary
              files in case that a backend crashes.

              (If ’-d’ is added multiple times, it  also  adds  to  the
              patches  other  extra debugging checks: only for advanced
              bug tracking).

       -k     keep temporary files (use for debugging).

              specify a different home for GnuPG, default for  root  is
              /etc/debdelta/gnupg  while  for other users is unset. See
              --homedir in gpg(1) for details.

       --disable-feature FEATURE
              disable an internal feature.  See  the  documentation  in

              Just list the deltas that would be created.


       See debdelta(1)


       See debdelta(1)


       debdeltas  --dir /tmp/ --old ~/mydebs ~/mydebs will generate all
       deltas to upgrade from the  old  versions  in  ~/mydebs  to  the
       newest version in ~/mydebs , and store the deltas in /tmp/

       debdeltas             --dir             /tmp//             --old
       /mirror/debian/dists/squeeze/main/binary-i386/Packages.gz   will
       generate all deltas to upgrade main/i386 from lenny to  squeeze,
       and store the deltas in a pool structure under /tmp/

       See  also  the  example  scripts  /usr/share/debdelta/debmirror-
       delta-security and /usr/share/debdelta/debmirror-deltas


       Report bugs to <>.


       Debdelta was written and is copyright © 2006-09 Andrea Mennucci.
       This    man    page    was    written   by   Jegou   Pierre-yves


       This is free software.  You may redistribute copies of it  under
       the   terms   of   the   GNU   Library  General  Public  License
       <>.    There   is    NO
       WARRANTY, to the extent permitted by law.


       debpatch(1), debdelta(1), /usr/share/doc/debdelta/README.