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=debis the usual one.FORMAT=unzippedmeans thedata.tarpart 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.conflinebig= the delta is too bigerror= the delta fails to apply in the clienttiny= the new package is small (the server ignores such packages)fail= the server failed to create the deltaqueued= the delta is queued to be made in the serverunavailable= all other casesafter= 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--homediringpg(1)for the details. ๐--forensic METHODโ if a delta fails, this reports logs so the problem may actually get addressed.METHODmay be:doโ just prepare logs and say where they are (this is the default)muttโ send logs by email usingmutticedoveโ send logs by email usingicedove(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:
- 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-policyto decide whether 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 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!! ๐๐ฆโจ
๐ฆ where this page comes from
- debian bookworm: debdelta 0.67 ยท GPL-2.0-only
- debian trixie: debdelta 0.70+nmu1 ยท GPL-2.0-only
- ubuntu jammy: debdelta 0.67 ยท GPL-2.0-only
- ubuntu noble: debdelta 0.70 ยท GPL-2.0-only
- ubuntu questing: debdelta 0.70+nmu2
- ubuntu resolute: debdelta 0.70+nmu2build1 ยท GPL-2.0-only
- ubuntu stonking: debdelta 0.70+nmu2build1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms