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.
Clearly, jigdo is the best method of obtaining Debian ISO images.