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
force saving of deltas in this DIR (otherwise they go in the dir
of the newer deb_file).
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.
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).
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
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
-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 an internal feature. See the documentation in
Just list the deltas that would be created.
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
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 <email@example.com>.
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
<http://www.gnu.org/licenses/lgpl-2.0.html>. There is NO
WARRANTY, to the extent permitted by law.
debpatch(1), debdelta(1), /usr/share/doc/debdelta/README.