A Delta ISO (deltaiso) is a file that contains the differences between two ISO files, and can be used to convert one into the other. It makes use of DeltaRPMs (deltarpm) between RPM files in the old and new ISOs, and so is only useful if these ISOs mainly consist of RPM files (as is the case for Fedora install images, but not live images).
System Requirements
Fedora
- Fedora 11 or later: RPM packages in Fedora 12 and later use xz compression (RPMs in older versions use gzip compression). In order to either create or use deltaisos between ISOs containing xz-compressed RPMs, Fedora 11 or later is required. (Fedora 10 or below does not work because there is not a
deltarpm
package with xz support.) - In Fedora 11, the
deltarpm
package must be installed, and it should be the updated version (deltarpm-3.5-0.4.20090913git.fc11.1
), not thedeltarpm-3.4-16.fc11
release version that does not contain xz support. - In Fedora 12 or later, the
deltaiso
package must be installed. (In Fedora 11,deltaiso
support is contained in thedeltarpm
package, and there is no separatedeltaiso
package.)
RHEL/CentOS
- RHEL/CentOS 4 or later with the EPEL repository enabled: The necessary packages for
deltaiso
support in RHEL/CentOS 4 or 5 are available in the EPEL repository. - In RHEL/CentOS 4, the
deltarpm
package must be installed. Note that the available version (deltarpm-3.4
) does not include xz support which is required for working with deltaisos between recent versions of Fedora (12 or later). - In RHEL/CentOS 5, the
deltaiso
package must be installed. (In RHEL/CentOS 4,deltaiso
support is contained in thedeltarpm
package, and there is no separatedeltaiso
package.)
Using Delta ISOs
The applydeltaiso
command is used. The syntax is:
applydeltaiso oldiso deltaiso newiso
If oldiso
is on a mounted CD/DVD disc, the following also works, but runs more slowly due to the optical drive's greater access time:
applydeltaiso /dev/dvd deltaiso newiso
Alternatively, the rawread script (download) can be used to read the disc image into a file, as follows:
rawread /dev/dvd > oldiso
This can be done while the deltaiso is downloading, and the resulting ISO file can be verified (both in terms of integrity, and to make sure the correct image is being used for oldiso
). When the download is finished, using applydeltaiso
on the ISO file will save time compared to using the optical disc.
Creating Delta ISOs
The makedeltaiso
command is used. The syntax is
makedeltaiso oldiso newiso deltaiso
Here, unlike the applydeltaiso
command, oldiso
should always refer to an ISO file, never a CD/DVD disc (Bug 569499). If necessary, the rawread script (download) can be used to read a CD/DVD disc image into an ISO file.
If the deltaiso is intended for a large audience, then run and time the applydeltaiso
command and verify that newiso
is correctly generated. There are two reasons for this.
- Telling users the estimated run time for
applydeltaiso
lets them determine whether the download time saved by using a deltaiso is likely to be greater than the time required to runapplydeltaiso
. - Due to the presence of some packages that were built improperly during Fedora 12 development, certain deltaisos may be nonfunctional. This should never happen when
oldiso
is Fedora 12 Final or later, andnewiso
is more recent thanoldiso
. Nevertheless, to be sure the deltaiso should be checked. Whenapplydeltaiso
finishes running, there should be a message similar to this:
iso successfully re-created, md5sum: f90d7a6d19a2cc5428a95892d5e2ca84
The md5sum is that of newiso
, which is stored in the deltaiso for later verification. On the other hand, a failed reconstruction shows this message:
md5sum mismatch, iso is corrupt
This means exactly what it says - in this case, do not use newiso
. This probably results from running applydeltaiso
on a system with the wrong type of xz
compression. See above for details. (work in progress)