Sunday, February 24, 2013

openSUSE: how to disable "delta RPM"

In order to save bandwidth, zypper is set by default to download so-called "delta RPMs", which are basically just binary patches. The process of applying the delta RPM can be, and often is, more time-consuming than downloading the full RPM.

To disable this behavior, edit the /etc/zypp/zypp.conf file. There are lots of options there and one can learn quite a bit just by reading the comments. The option we are interested in is:
## Whether to consider using a .delta.rpm when downloading a package
## Valid values: boolean
## Default value: true
## Using a delta rpm will decrease the download size for package updates
## since it does not contain all files of the package but only the binary
## diff of changed ones. Recreating the rpm package on the local machine
## is an expensive operation (memory,CPU). If your network connection is
## not too slow, you benefit from disabling .delta.rpm.
download.use_deltarpm = false

As in the example above, set it to false.


  1. Life saving article.
    For some strange reason, one of my servers crashed in the middle of packet updating, and when it came back, it started complaining that the full rpm package could not be found, during the delta rpm installation.

    Turning off delta rpm done the trick.

  2. Thank you for this! I have a fast connection but a not very fast CPU, so using deltas makes no sense.

  3. I'm using openSUSE inside a VM with limited resources and package updates take a long time to run. This fix is what I was looking for, since I'm not constrained on bandwidth. Thanks!