2. Why jigdo?

2.1. How Does One Get A Debian ISO Image Set?

If you want a set of Debian CDs there are many ways of getting them. One way is to buy
them from vendors who sell Debian CDs.
This definitely has merit since some of the vendors donate money back to the Debian project.
Your donations help make sure that Debian is around for a long time.

Another way of getting a set of Debian CDs is to burn your own set. This first entails
obtaining an ISO image and then burning that ISO image to a blank CD. Before jigdo, there
were two ways of creating Debian CDs:

Downloading the entire ISO

Using the pseudo-image kit (PIK)

This document is about the newer and better way of obtaining Debian ISO images, using a
tool called jigdo. In fact, the PIK is now officially dead and all further references to it
have been removed from this document. The canonical method of getting Debian ISO images is
with jigdo.

2.2. Why Not Download The Whole ISO Image?

There are mirrors which offer http and ftp downloads of Debian ISOs. The problem is
that there are very few mirror sites, and their bandwidth can't support everyone who wants
Debian ISOs. For example, fsn.hu has reportedly saturated the connection of its provider.
The outgoing traffic reaches a few terabytes per month!

In addition, Debian testing and unstable get updated often. Your ISOs may become
outdated the same day you download them unless you find some sneaky way of updating them like
mounting the ISO on a loopback device and using rsync (which is what the PIK did). So if you
want up-to-date ISO images, you must download a new set of ISO images every day. Clearly,
this is not the way you want to obtain Debian ISOs!

Even if you want to download the stable ISO images, they still get updated every few
months. Downloading the ISO images will give you up-to-date images for a few months, but
every time a new revision of Debian stable is released, you'll need to go through the painful
process of downloading the entire ISO set from scratch. This is not a good use of your time
and the mirror's resources.

2.3. What Is Jigdo?

Jigdo (which stands for "Jigsaw Download") was written by Richard Atterer and is released under the GNU GPL.
It's a tool that allows efficient downloading and updating of an ISO image. Any ISO image.
Jigdo is not Debian specific, however Debian has chosen it to be the official method of
downloading ISO images.

A common misconception is that jigdo creates ISO images; it doesn't. Let's discuss the
overall process of how jigdo allows you to obtain an ISO image. Let Adam (a Debian release
manager) be the person offering the ISO image. Let Betty (a Debian user) be the person who
wants to download the ISO image.

Adam first creates an ISO image suitable for burning a CD. He might use a utility
like mkisofs or debian-cd to create
the ISO image. He also creates two small files associated with his newly created image: a
.jigdo file and a .template file. He makes these
two files available for download to anyone who wants to obtain his ISO image.

Betty then downloads the .jigdo and
.template files. She uses jigdo-lite along
with these two files to download Adam's ISO image.

When Debian gets updated, Adam creates a new version of the ISO and generates new
.jigdo and .template files.

When Betty wants to update her CDs, she downloads the new .jigdo
and .template files and uses them with
jigdo-light to update her copy of the ISO images. The important
thing here is that she only downloads the differences between her old ISO and Adam's new
ISO. She does not have to re-download the parts that are unchanged.

Jigdo comes with two utilities: jigdo-file (used by Adam)
which creates the .jigdo and .template files, and
jigdo-lite (used by Betty) which uses these two files to download
or update the ISO. If all you want to do is obtain/update Debian ISOs, you'll only use
jigdo-lite. You can forget that jigdo-file even exists.
:-)

Jigdo addresses all the problems with the other methods of obtaining Debian ISO
images:

It's much faster than downloading the entire ISO image.

Unlike downloading the entire ISO image, it can take an outdated CD (or a loop
mounted outdated ISO image), download only the files that have changed
since the CD (or ISO image) was created and create a new updated ISO. Very similar to how you
use cvs to update source code.

jigdo-lite uses wget which, by default, uses http to transfer files. Unlike
rsync, http is never blocked by firewalls (except the ones behind which you shouldn't be using
jigdo to begin with).

Jigdo is very kind to the bandwidth of the servers offering the Debian images.
The Debian mirrors can handle a bigger load of people using jigdo to download Debian images
than with other methods of getting them.