---
name: "debdelta-upgrade"
section: "1"
platform: "linux"
package: "debdelta"
version: "0.70+nmu1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/debdelta-upgrade"
---

# debdelta-upgrade(1)

Downloads all deltas that may be used to 'apt-get upgrade', and apply them.

## NAME

debdelta-upgrade - Downloads all deltas that may be used to 'apt-get upgrade', and apply them.

## SYNOPSIS

**debdelta-upgrade** \[*OPTION*\]... \[*PACKAGE*\] ...

## DESCRIPTION

This program is designed to download changes (deltas) that may be used to  **apt-get upgrade** all listed packages, and apply them. If no package is listed in the command line, then it will apply to all upgradable packages. See [**debdelta**(1)](/debdelta/1.md) for more details on the delta files.

## OPTIONS

- **--dir** *DIR*

  *directory where to save results.* *(default: /var/cache/apt/archives for root,*  */tmp/archive for non-root users)*

- **--format** *FORMAT*

  *format of recreated debs. FORMAT=deb is the usual,* *FORMAT=unzipped means that the data.tar part is not compressed,* *(and this may save some time)*

- **--deb-policy** *POLICY*

  *policy to decide which debs to download,* *it is a comma separated list of (abbreviations of)*\
       *source =  there is no /etc/debdelta/sources.conf line*\
       *big =  the delta is too big*\
       *error =  the delta fails to apply in the client*\
       *tiny = the new package is small (the server ignores such packages)*\
       *fail = the server failed to create the delta*\
       *queued = the delta is queued to be made in the server*\
       *unavailable = all other cases*\
       *after = continue downloading debs after patching has ended*\
     *default is s,b,e,t,f*

- **-v**

  **verbose (can be added multiple times).**

- **-d**

  **print full traceback on Python errors; save useful info in temporary files**  **in case that a delta fails.**

- **-k**

  **keep temporary files (use for debugging).**

- **-A --accept-unsigned**

  **accept unsigned deltas.**

- **--gpg-home**

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

- **--forensic** *METHOD*

  *if a delta fails, report logs so that the problem may be addressed.* *Method may be*\
     *do*\
         *just prepare logs and say where they are (default)*\
     *mutt*\
         *send logs by email using mutt*\
     *icedove*\
         *send logs by email using icedove (as root!)*\
     *http*\
         *send by http (currently not working)*

- **--timeout** *SECONDS*

     *adjust timeout for connections, default is 15 seconds*

## EXAMPLES

*When invoked as root,* *apt-get update && debdelta-upgrade && apt-get upgrade* *will download delta files, recreate the needed Debian*  *packages, and then upgrade your Debian host. When only* *slow Internet connection is available, the above procedure may* *be significantly faster than "apt-get update && apt-get upgrade".* *(Use -v to see how much faster.)*

*The package manager*  *cupt* *uses deltas as well when upgrading.*

## SECURITY

*A Debian package that is recreated using* *debdelta-upgrade* *is byte-by-byte* *identical to the original one; when  "apt-get upgrade"* *is subsequently invoked, the cryptographic* *archive authentication support (see*  *apt-secure (8)* *) will guarantee that it can be trusted to be installed.  Moreover,* *the delta files themselves are cryptographically protected using GnuPG,* *MD5 and SHA1 (using the same method as* [**dpkg-sig**(1)](/dpkg-sig/1.md) *), and*  *debdelta-upgrade* *will refuse to apply corrupted or unsigned deltas (but, see option* **-A** *).*

## DOWNLOAD AND PROXIES

*debdelta-upgrade* *downloads deltas in two passes: in the first pass, it downloads the* *first kB of each delta, to extract the delta parameters and* *to examine them. If the delta does not exist, it checks* *existence of flag timestamps in the remote server* *(such as* *debdelta-too-big* *debdelta-queued* *debdelta-failed* *), and then it examines the* *--deb-policy* *to decide if to download the deb instead.* *In the second pass, it downloads (the rest of) the*  *deltas and queues them in a patching queue.*

*For plain direct http downloads,* *debdelta-upgrade* *uses the Python library 'httplib'* *directly; in particular, it uses keep-alive* *features, and this speeds up a lot the first pass.*

*If  variables such as* *http\_proxy* *are set in the environment,  then instead*  *debdelta-upgrade* *will use the 'urllib2' module: this*  *though slows down sensibly the first pass above* *(since 'urllib2' opens a different connection for* *each download); moreover 'urllib2' seems* *to be buggy in some places* *(for example, it transforms http response*  *"401"  into "404" , and "302" into "200")* *so the output explanation printed by* *debdelta-upgrade* *in case of download error may be wrong; and most of the opetions for* *--deb-policy* *are currently disabled (until the author understands 'urllib2'* *better).*

## EXIT STATUS

*See*  [**debdelta**(1)](/debdelta/1.md)

## REPORTING BUGS

*Report bugs to \<mennucc1@debian.org\>.*

## SIZES

*In the program printout  kB = 1024 bytes and MB = 1024^2 bytes .*

## AUTHORS

*Debdelta was written and is copyright © 2006-09 Andrea Mennucci.*\
 *This man page was written by Jegou Pierre-yves  \<pierreyves.jeg@voila.fr\>.*

## COPYING

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

## SEE ALSO

[**debdelta**(1)](/debdelta/1.md), [**apt-get**(8)](/apt-get/8.md), **/usr/share/doc/debdelta/README.upgrade**, **/usr/share/doc/debdelta/README**.
