DEBDELTA-UPGRADE(1)

๐Ÿ’– DEBDELTA-UPGRADE ๐Ÿ’–

okay bestie, welcome to the debdelta-upgrade manual โ€” it's a User Command, and it's about to save your whole entire bandwidth situation. no cap. ๐Ÿฆ‹


โœจ SYNOPSIS โœจ

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

๐ŸŒธ DESCRIPTION ๐ŸŒธ

So the whole vibe of this program: it downloads the changes (we call them deltas) that you could use to apt-get upgrade all the packages you listed, and then it applies them. That's it, that's the gig. ๐Ÿ’…

If you don't list any package on the command line, it just goes ahead and does this for all upgradable packages. no package left behind, periodt.

Wanna know more about what these delta files actually are? Go read debdelta(1), it spills the tea. ๐Ÿซ–


๐ŸŽ€ OPTIONS ๐ŸŽ€

  • --dir DIR โ€” the directory where we save the results. Default? Okay so it depends: for root it's /var/cache/apt/archives, and for non-root users it's /tmp/archive. โœจ
  • --format FORMAT โ€” the format of the recreated debs. FORMAT=deb is the usual one. FORMAT=unzipped means the data.tar part is not compressed (and honestly this may save you some time, you're welcome ๐Ÿ’–).
  • --deb-policy POLICY โ€” the policy that decides which debs to download. It's a comma separated list of (abbreviations of) these:
    • 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

and the default is s,b,e,t,f ๐Ÿ‘‘

  • -v โ€” verbose!! (you can add it multiple times, stack that up bestie ๐Ÿ“š)
  • -d โ€” print the full traceback on Python errors; also saves useful info in temporary files in case a delta fails. very "for science" of it. ๐Ÿ”
  • -k โ€” keep temporary files (use this for debugging).
  • -A, --accept-unsigned โ€” accept unsigned deltas. โš ๏ธ (yes, we're looking at you, this is the risky one)
  • --gpg-home โ€” specify a different home for GnuPG. The default for root is /etc/debdelta/gnupg, while for other users it's unset. See --homedir in gpg(1) for the details. ๐Ÿ”
  • --forensic METHOD โ€” if a delta fails, this reports logs so the problem may actually get addressed. METHOD may be:
    • do โ€” just prepare logs and say where they are (this is the 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 the timeout for connections. Default is 15 seconds. โณ

๐Ÿ”ฅ EXAMPLES ๐Ÿ”ฅ

When you invoke it as root, this whole sequence:

apt-get update && debdelta-upgrade && apt-get upgrade

will download delta files, recreate the needed Debian packages, and then upgrade your Debian host. slay. ๐Ÿ‘‘

And listen โ€” when you only have a slow Internet connection available, that procedure above may be significantly faster than plain "apt-get update && apt-get upgrade". (Use -v to see how much faster, so you can brag about it. ๐Ÿ’…)

Also the package manager cupt uses deltas as well when upgrading. cute.


๐Ÿ›ก๏ธ SECURITY ๐Ÿ›ก๏ธ

A Debian package that gets recreated using debdelta-upgrade is byte-by-byte identical to the original one. fr fr. So 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)), and debdelta-upgrade will refuse to apply corrupted or unsigned deltas.

but... see option -A ๐Ÿ‘€ (yeah, that one lets you override it, don't say we didn't warn you)

๐ŸŒˆ DOWNLOAD AND PROXIES ๐ŸŒˆ

debdelta-upgrade downloads deltas in two passes:

  1. 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 the 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 whether to download the deb instead.
  2. 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 the first pass a lot. โœจ

If variables such as http_proxy are set in the environment, then instead debdelta-upgrade will use the 'urllib2' module. This though slows down the first pass above sensibly (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 a download error may be wrong. And most of the options for --deb-policy are currently disabled (until the author understands 'urllib2' better). ๐Ÿ’€


๐Ÿฆ‹ EXIT STATUS ๐Ÿฆ‹

See debdelta(1).


๐Ÿ™ˆ REPORTING BUGS ๐Ÿ™ˆ

Report bugs to <mennucc1@debian.org>. bestie will hear you out.


๐Ÿ“ SIZES ๐Ÿ“

In the program printout, kB = 1024 bytes and MB = 1024^2 bytes. math is math. ๐Ÿงฎ


๐Ÿ‘‘ 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. (yes the caps are doing the heavy lifting there, they mean it ๐Ÿ˜Œ)


๐ŸŒŸ SEE ALSO ๐ŸŒŸ

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


okay that's the whole page, you ate it up. ๐ŸŽ€ this was debdelta-upgrade, page dated aug 2009, from the debdelta-upgrade source โ€” go forth and delta responsibly, ily, bye!! ๐Ÿ’–๐Ÿฆ‹โœจ