Manual installation of delta.rpm

I noticed that the update repo has both delta.rpm and *.rpm suppose I download the delta.rpm how do I install that? I also noticed that the software installer does not always download the delta.rpm is there a reason for that? Do I need to configure something?

man applydeltarpm

You should be able to disable it through /etc/zypp/zypp.conf

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 = true

But by default it should always use delta rpm if they are available (only official updates repo has them).

Thank you for the answer but I did get stuck after reading :

man applydeltarpm

I am not sure how to use applydeltarpm with the delta.rpm I downloaded from the update repo. Please can you write out the command so that I can update certain files using the delta.rpm

I checked on the /etc/zypp/zypp.conf and the default value is true but still the system downloads the plain rpm file instead of the delta.rpm and apply the update. Certainly some more configuration!!

$ applydeltarpm source.delta.rpm target.rpm

To find the name of the target RPM use

$ applydeltarpm -i source.delta.rpm

I have copies of delta RPMs for the openSUSE online update in a local directory. For some reason YaST Online Update will insist on using RPMs instead of delta RPM, when updating from this local directory. So I have to use the following script to convert the delta RPMs manually:

ATIME=3 # access time less than 3 days ago
find -type f -atime -$ATIME | grep ‘delta.rpm$’ | while read DELTARPM; do
TARGET=$(applydeltarpm -i $DELTARPM | grep '^target rpm: ’ | sed ‘s/^target rpm: //’)
SUFFIX=$(echo $DELTARPM | sed ‘s/^.(…).delta.rpm/\1.rpm/’)
if ! -e $TARGET$SUFFIX ]; then
applydeltarpm $DELTARPM $TARGET$SUFFIX
fi
done