From Fedora Project Wiki

((hopefully) clarified system requirements)
(Undo revision 385273 by Lsatenstein (talk) (original version was correct))
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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).
A delta ISO 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 delta RPMs 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).


{{admon/tip|If you like DeltaRPMs, you will like Delta ISOs|Using deltaisos saves bandwidth and time.}}
{{admon/tip|If you like delta RPMs, you will like delta ISOs|Using delta ISOs saves bandwidth and time.}}


== System Requirements ==
== System Requirements ==
Line 7: Line 7:
=== Fedora ===
=== 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 <code>deltarpm</code> package with xz support.)
{{admon/important|xz compression change in Fedora 15|If you want to use delta ISOs for F15 or above on a system running F14 or below, see [http://lists.fedoraproject.org/pipermail/test/2011-April/098585.html this] on how to either build executables, or download prebuilt executables, to use in place of those in the native <code>deltaiso</code> package (which will not work on F14 or below).}}
* In Fedora 11, the <code>deltarpm</code> package must be installed, and it should be the updated version (<code>deltarpm-3.5</code> or later, not the <code>deltarpm-3.4-16.fc11</code> release version that does not contain xz support).
 
* In Fedora 12 or later, the <code>deltaiso</code> package must be installed.  (In Fedora 11, <code>deltaiso</code> support is contained in the <code>deltarpm</code> package, and there is no separate <code>deltaiso</code> package.)
* '''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 delta ISOs between ISOs containing xz-compressed RPMs, Fedora 11 or later is required. (Fedora 10 or below does ''not'' work because there is not a <code>deltarpm</code> package with xz support.)
* In Fedora 11, the <code>deltarpm</code> package must be installed, and it should be the updated version (<code>deltarpm-3.5-0.4.20090913git.fc11.1</code>), not the <code>deltarpm-3.4-16.fc11</code> release version that does not contain xz support.
* In Fedora 12 or later, the <code>deltaiso</code> package must be installed.  (In Fedora 11, delta ISO support is contained in the <code>deltarpm</code> package, and there is no separate <code>deltaiso</code> package.)


=== RHEL/CentOS ===
=== RHEL/CentOS ===


* '''RHEL/CentOS 4 or later with the [[EPEL]] repository enabled''': The necessary packages for  <code>deltaiso</code> support in RHEL/CentOS 4 or 5 are available in the [[EPEL]] repository.
* '''RHEL/CentOS 4 or later'''. In RHEL/CentOS 4 and 5, the [[EPEL]] repository must be enabled.
* In RHEL/CentOS 4, the <code>deltarpm</code> package must be installed.  Note that the available version (<code>deltarpm-3.4</code>) does not include xz support which is required for working with deltaisos between recent versions of Fedora (12 or later).
* In RHEL/CentOS 4, the <code>deltarpm</code> package must be installed.  Note that the available version (<code>deltarpm-3.4</code>) does not include xz support which is required for working with delta ISOs between recent versions of Fedora (12 or later).
* In RHEL/CentOS 5, the <code>deltaiso</code> package must be installed.  (In RHEL/CentOS 4, <code>deltaiso</code> support is contained in the <code>deltarpm</code> package, and there is no separate <code>deltaiso</code> package.)
* In RHEL/CentOS 5 or later, the <code>deltaiso</code> package must be installed.  (In RHEL/CentOS 4, <code>deltaiso</code> support is contained in the <code>deltarpm</code> package, and there is no separate <code>deltaiso</code> package.)


== Using Delta ISOs ==
== Using Delta ISOs ==
Line 26: Line 28:


<pre>applydeltaiso /dev/dvd deltaiso newiso</pre>
<pre>applydeltaiso /dev/dvd deltaiso newiso</pre>
Alternatively, the [http://www.troubleshooters.com/linux/coasterless.htm#rawread rawread script] ([https://fedoraproject.org/wiki/File:Rawread.sh download]) can be used to read the disc image into a file, as follows:
<pre>rawread /dev/dvd > old.iso</pre>
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 <code>oldiso</code>).  When the download is finished, using <code>applydeltaiso</code> on the ISO file will save time compared to using the optical disc.


== Creating Delta ISOs ==
== Creating Delta ISOs ==
Line 39: Line 35:
<pre>makedeltaiso oldiso newiso deltaiso</pre>
<pre>makedeltaiso oldiso newiso deltaiso</pre>


Here, unlike the <code>applydeltaiso</code> command, <code>oldiso</code> should always refer to an ISO file, never a CD/DVD disc. ([https://bugzilla.redhat.com/show_bug.cgi?id=569499 Bug 569499])
Here, unlike the <code>applydeltaiso</code> command, <code>oldiso</code> should always refer to an ISO file, never a CD/DVD disc ({{bz|569499}}).


If the deltaiso is intended for a large audience, then run and time the <code>applydeltaiso</code> command and verify that <code>newiso</code> is correctly generated.  There are two reasons for this.
If the delta ISO is intended for a large audience, then run and time the <code>applydeltaiso</code> command and verify that <code>newiso</code> is correctly generated.  There are two reasons for this.


# Telling users the estimated run time for <code>applydeltaiso</code> lets them determine whether the download time saved by using a deltaiso is likely to be greater than the time required to run <code>applydeltaiso</code>.
# Telling users the estimated run time for <code>applydeltaiso</code> lets them determine whether the download time saved by using a delta ISO is likely to be greater than the time required to run <code>applydeltaiso</code>.
# 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 <code>oldiso</code> is Fedora 12 Final or later, and <code>newiso</code> is more recent than <code>oldiso</code>. Nevertheless, to be sure the deltaiso should be checked. When <code>applydeltaiso</code> finishes running, there should be a message similar to this:
# Around the time of <code>xz</code> compression changes, certain delta ISOs may be nonfunctional as a result of not all RPMs in <code>newiso</code> using the same compression. Hence the delta ISO should be checked. When <code>applydeltaiso</code> finishes running, there should be a message similar to this:


<pre>iso successfully re-created, md5sum: f90d7a6d19a2cc5428a95892d5e2ca84</pre>
<pre>iso successfully re-created, md5sum: f90d7a6d19a2cc5428a95892d5e2ca84</pre>


The md5sum is that of <code>newiso</code>, which is stored in the deltaiso for later verification.  On the other hand, a failed reconstruction shows this message:
The md5sum is that of <code>newiso</code>, which is stored in the delta ISO for later verification.  On the other hand, a failed reconstruction shows this message:


<pre>md5sum mismatch, iso is corrupt</pre>
<pre>md5sum mismatch, iso is corrupt</pre>


For more details, refer to [https://bugzilla.redhat.com/show_bug.cgi?id=548523 Bug 548523].
and in this case the delta ISO should not be used.


== External Links ==
== External Links ==
*[http://en.wikipedia.org/wiki/Delta_ISO Wikipedia's Delta ISO page]
*[http://en.wikipedia.org/wiki/Delta_ISO Wikipedia's Delta ISO page]
*[http://en.opensuse.org/Download_help#Deltaisos Using Delta ISOs (openSUSE)]
*[http://en.opensuse.org/SDB:Download_help#Deltaisos Deltaisos (openSUSE)]
*[http://man-wiki.net/index.php/8:applydeltaiso applydeltaiso man page]
*[http://man-wiki.net/index.php/8:applydeltaiso applydeltaiso man page]
*[http://man-wiki.net/index.php/8:makedeltaiso makedeltaiso man page]
*[http://man-wiki.net/index.php/8:makedeltaiso makedeltaiso man page]

Latest revision as of 15:42, 27 August 2014

A delta ISO 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 delta RPMs 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).

Idea.png
If you like delta RPMs, you will like delta ISOs
Using delta ISOs saves bandwidth and time.

System Requirements

Fedora

Important.png
xz compression change in Fedora 15
If you want to use delta ISOs for F15 or above on a system running F14 or below, see this on how to either build executables, or download prebuilt executables, to use in place of those in the native deltaiso package (which will not work on F14 or below).
  • 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 delta ISOs 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 the deltarpm-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, delta ISO support is contained in the deltarpm package, and there is no separate deltaiso package.)

RHEL/CentOS

  • RHEL/CentOS 4 or later. In RHEL/CentOS 4 and 5, the EPEL repository must be enabled.
  • 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 delta ISOs between recent versions of Fedora (12 or later).
  • In RHEL/CentOS 5 or later, the deltaiso package must be installed. (In RHEL/CentOS 4, deltaiso support is contained in the deltarpm package, and there is no separate deltaiso 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

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 (RHBZ #569499).

If the delta ISO 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.

  1. Telling users the estimated run time for applydeltaiso lets them determine whether the download time saved by using a delta ISO is likely to be greater than the time required to run applydeltaiso.
  2. Around the time of xz compression changes, certain delta ISOs may be nonfunctional as a result of not all RPMs in newiso using the same compression. Hence the delta ISO should be checked. When applydeltaiso 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 delta ISO for later verification. On the other hand, a failed reconstruction shows this message:

md5sum mismatch, iso is corrupt

and in this case the delta ISO should not be used.

External Links