Delta update

This article relies too much on references to primary sources. Please improve this by adding secondary or tertiary sources. (August 2022) (Learn how and when to remove this template message)

|

Short description: Update that only requires the user to download changed code

A delta update is a software update that requires the user to download only those parts of the software's code that are new, or have been changed from their previous state, in contrast to having to download the entire program. The use of delta updates can save significant amounts of time and computing bandwidth. The name "delta" derives from the mathematical science use of the Greek letter delta, Δ or δ to denote change.[1]

## Contents

* 1 Uses
* 1.1 Linux
* 1.2 Windows
* 1.3 FreeBSD
* 1.4 Google
* 1.5 Apple iOS
* 2 See also
* 3 References

## Uses

### Linux

Delta update in Fedora Linux

Fedora Linux has supported binary delta updates by default using the yum presto plugin since June 2009. This is based on RPM Package Manager's deltarpm system (2004), which was in turn based on bsdiff.[2] This functionality has been inherited by Fedora-derived operating systems, including RedHat Enterprise Linux and its variant, CentOS. From Fedora 40 onward, delta updates had been discontinued.[3] openSUSE also uses delta-rpm's with its zypper manager. This is still in use, and the standard solution for the openSUSE Leap distribution today. A more primitive system, the SUSE patchrpm, worked by replacing changed files.[4]

A similar system for the dpkg-APT package manager system of Debian is `debdelta` (2006); despite an apparent halt on the homepage, its package repository as well as the source code remains actively maintained.[5] `debdelta` is not installed by default and not many mirrors have been set up for it. A member of the developer team has proposed yet another format that integrates directly into the currently mirrored main repositories called patch debs in 2018. It is intended to have more integrity checks.[6]

A descendant of Debian, Ubuntu developers have tried many times to implement delta updates for their system. During 2006 they tried to create one, but were confronted with too many options and dropped the efforts.[7] In 2011 they tried to just set up `debdelta`, but once again dropped the efforts in May of the same year.[8]

The Arch Linux package manager pacman used to support a form of delta updating using VCDIFF (xdelta). It was scrapped due to an arbitrary command execution vulnerability (CVE-2019-18183) due to a lack of string escaping.

### Windows

Windows Update has supported delta updates since Windows XP which are called express installation files. On redistributing updates, Windows Server Update Services has supported delta updates since Windows Server 2003.[9]

### FreeBSD

FreeBSD has supported delta updates using portsnap[10] since November 2005.[11] Given FreeBSD's traditional stance of focusing on source code updates, no method of delta binary updates currently exists.

### Google

Google's open source project Chromium requires frequent updates to narrow the window of vulnerability.[12] It uses a disassembly-based diffing algorithm called "courgette" to reduce diff size of two binary executable files, which reduces the diff patch from 6.7% (bsdiff) to 0.76% (bsdiff + courgette) for one version update.[13] The technology helped Chrome to push its updates to 100% of users in less than 10 days.

App APK updates in Android's Play Store use bsdiff since 2016, a new efficient delta update algorithm introduced in 2003.[14]

### Apple iOS

Apple's iOS is also capable of delta updates for operating system and application updates to reduce bandwidth usage. [15]

## See also

* Data differencing
* Delta encoding

## References

1. ↑ Mullin, Sean (2017-04-25). "What is Delta in Math?". Leaf Group Media. https://sciencing.com/delta-math-6678201.html. "delta...means 'change' or 'the change in' in mathematics"
2. ↑ "Fedora Features/Presto". https://fedoraproject.org/wiki/Features/Presto.
3. ↑ "Changes/Drop Delta RPMs - Fedora Project Wiki". https://fedoraproject.org/wiki/Changes/Drop_Delta_RPMs.
4. ↑ "6.3. RPM and Patches". https://www.pks.mpg.de/~mueller/docs/suse10.2/html/opensuse-manual_en/manual/sec.rpm.patches.html.
5. ↑ "debdelta at the Debian Project". http://debdelta.debian.net/. (for source code, see debian "developer information" for package; for repository, see http://debdeltas.debian.net/debian-deltas/pool/.)
6. ↑ "Teams/Dpkg/Spec/DeltaDebs". https://wiki.debian.org/Teams/Dpkg/Spec/DeltaDebs.
7. ↑ "SmallerUpdates". https://wiki.ubuntu.com/SmallerUpdates. Retrieved 13 January 2020.
8. ↑ "UbuntuDebdeltaSupport". https://wiki.ubuntu.com/UbuntuDebdeltaSupport.
9. ↑ "Determine Bandwidth Options to Use for Your Deployment". 9 April 2014. https://technet.microsoft.com/en-us/library/cc708456.
10. ↑ "Secure FreeBSD ports tree updating". http://www.daemonology.net/portsnap/.
11. ↑ "FreeBSD 6.0-RELEASE Announcement". http://www.freebsd.org/releases/6.0R/announce.html.
12. ↑ "Smaller is faster (and safer too)". https://blog.chromium.org/2009/07/smaller-is-faster-and-safer-too.html.
13. ↑ "Software Updates: Courgette". https://dev.chromium.org/developers/design-documents/software-updates-courgette.
14. ↑ Google Play’s new delta algorithm reduces size of Android app updates
15. ↑ "Technical Q&A QA1779: Reducing Download Size for iOS App Updates". https://developer.apple.com/library/ios/qa/qa1779/_index.html. Retrieved 2015-07-07.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Delta update. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Delta_update&oldid=4230677"