<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<!--
  FIXME: I want the "endnotes" to be footnotes.  How?
-->

<article>

<artheader>

	<title>Debian Jigdo mini-HOWTO</title>
	<titleabbrev>DJ-HOWTO</titleabbrev>

	<author>
		<firstname>Peter</firstname>
		<othername role='middle'>Jay</othername>
		<surname>Salzman</surname>
		<affiliation>
		<address><email>p@dirac.org</email></address>
		</affiliation>
	</author>

	<!--     year-month-day            -->
	<pubdate>2004-01-08 ver 1.1</pubdate>

	<copyright>
		<year>2001</year>
		<holder>Peter Jay Salzman</holder>
	</copyright>

	<legalnotice>
		<para><email>p@dirac.org</email> / <systemitem role="url">www.dirac.org/p</systemitem>.</para>
		<para>Distributed subject to the Open Software License, version 1.1.</para>
	</legalnotice>

	<abstract><title>Abstract</title>

  <para>Getting Debian ISOs has always been a painful, slow and supremely inefficient process.
  Jigdo is a new tool for obtaining Debian ISOs in an easy, fast and very efficient manner.  This
  HOWTO describes why you should use jigdo, a little bit about how it works and how you use it to
  get and update Debian ISOs.</para>

  <para>Jigdo is a very general tool, and isn't tied specifically to Debian ISOs.  The jigdo tools
  can be used to make any ISO available for download in the same easy, fast and efficient manner
  they're used for Debian ISOs.  This HOWTO will cover this as well, but we'll focus primarily on
  downloading Debian ISOs.</para>

  </abstract>

</artheader>





<sect1 id="administrata"><title>Administrata</title>


    <sect2 id="authorship"><title>Authorship and Copyright</title>

      <para>This document is copyright (c) 2001 Peter Jay Salzman, <email><ulink
      url="mailto:p@dirac.org">p@dirac.org</ulink></email>.  Permission is granted to copy,
      distribute and/or modify this document under the terms of the Open Software License (OSL),
      version 1.1, except for the provisions I list in the next paragraph.  I hate HOWTO's that
      include the license; it's a tree killer.  You can read the OSL at <ulink
      url="http://opensource.org/licenses/osl-1.1.txt">http://opensource.org/licenses/osl-1.1.txt</ulink>.</para>

      <para>If you want to create a derivative work or publish this HOWTO for commercial purposes, I
      would appreciate it if you contact me first.  This will give me a chance to give you the most
      recent version.  I'd also appreciate either a copy of whatever it is you're doing or a
      spinach, garlic, mushroom, feta cheese and artichoke heart pizza.</para>

    </sect2>




    <sect2 id="acknowledgements"><title>Acknowledgements</title>

      <para>Originally, I was going to thank the author of jigdo, <ulink
      url="mailto:atterer@debian.org">Richard Atterer</ulink>, simply for writing jigdo.  Anyone who
      has obtained Debian ISOs by other means will know why.  However, my thanks needs to go
      further.  This HOWTO started out as some webpages I wrote about my experience with jigdo.
      Richard took the time to email me extensive corrections, clarifications and answers to
      questions I had about jigdo.  Since then, he has read my work many times.  Richard is a
      developer who not only cares about his work, but also about the people who use it.  Sadly,
      this is becoming less common in this busy world we live in.  Thanks, Richard!</para>

			<para>I'd also like to thank
      <ulink url="mailto:cnw@conradwood.net">Conrad Wood</ulink>,
      <ulink url="mailto:mello@ajato.com.br">Elcio Mello</ulink>,
      <ulink url="mailto:mramos@montevideo.com.uy">Marcelo Ramos</ulink>,
      <ulink url="mailto:ipzh@163.net">Yufeng Wang</ulink>, and
      <ulink url="mailto:tyamagch@bd.mbn.or.jp">Tsukasa Yamaguchi</ulink>
      for translating this mini-HOWTO.  I feel totally honored that they have found my words worthy
      of their time and effort.  Thanks, guys!</para>

      <para>Lastly, I'd like to thank <ulink url="mailto:mark@panic.et.tudelft.nl">Mark van
      Lent</ulink> for his kind words and much needed corrections.</para>

		</sect2>



		<sect2><title>Comments and Corrections</title>

      <para>I care a great deal about the people who use this document.  Even mini-HOWTOs take a
      long time to write, and I wouldn't have invested so much effort into something people don't
      understand.  If you have comments, corrections or suggestions, even in matters like writing
      style, don't hesitate to email me.  As long as I'm not totally swamped by my PhD dissertation
      and the book I'm writing on debugging code with GDB/DDD for No Starch Press, I'll do my best
      to respond to each email I receive about this mini-HOWTO.</para>

    </sect2>




    <sect2 id="version"><title>Latest Version And Translations</title>

			<variablelist>

			<varlistentry>
        <term>German:</term>
        <listitem><para>Conrad Wood <email>cnw@conradwood.net</email>.</para></listitem>
      </varlistentry>

			<varlistentry>
        <term>Portuguese</term>
        <listitem><para>Elcio Mello <email>mello@ajato.com.br</email>.</para></listitem>
      </varlistentry>


			<varlistentry>
        <term>Spanish</term>
        <listitem><para>Marcelo Ramos <email>mramos@montevideo.com.uy</email>.</para></listitem>
      </varlistentry>


			<varlistentry>
        <term>Chinese</term>
        <listitem><para>Yufeng Wang <email>ipzh@163.net</email>.  Available at <ulink
        url="http://www.wangyf.com/linux/debian-jigdo-mini-howto.html"
        >http://www.wangyf.com/linux/debian-jigdo-mini-howto.html</ulink>.</para></listitem>
      </varlistentry>


			<varlistentry>
        <term>Japanese</term>
        <listitem>
        <para>Tsukasa Yamaguchi <email>tyamagch@bd.mbn.or.jp</email>.  Available at <ulink
        url="http://www.linux.or.jp/JF/JFdocs/Debian-Jigdo"
        >http://www.linux.or.jp/JF/JFdocs/Debian-Jigdo</ulink>.</para></listitem>
      </varlistentry>

			</variablelist>

      <para>The English version and all its translations are available at my website: <ulink
      url="http://www.dirac.org/linux/debian/jigdo">http://www.dirac.org/linux/debian/jigdo</ulink>.
      If you'd like to translate this mini-HOWTO to another language, please contact me at
      <email><ulink url="mailto:p@dirac.org">p@dirac.org</ulink></email>.</para>

      <para>The stable English version can be found at The Linux Documentation Project: <ulink
      url="http://tldp.org/docs.html">http://tldp.org/docs.html</ulink> in the mini-HOWTO section.
      If you want to see the work in progress, you can get the "bleeding edge" version from <ulink
      url="http://www.dirac.org/linux/debian/jigdo">http://www.dirac.org/linux/debian/jigdo</ulink>.</para>

    </sect2>


</sect1>





<sect1 id="whyjigdo"><title>Why jigdo?</title>

    <sect2><title>How Does One Get A Debian ISO Image Set?</title>

      <para>If you want your own set of Debian CDs there are many ways of getting them.  One way is
      to buy them from <ulink url="http://www.debian.org/CD/vendors/">vendors</ulink> 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.</para>

      <para>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:</para>

			<orderedlist>
			<listitem><para>Downloading the entire ISO</para>
			<listitem><para>Using the pseudo-image kit (PIK)</para>
			</orderedlist>

      <para>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.</para>

		</sect2>




		<sect2 id="whynotdownloadthewholeisoimage"><title>Why Not Download The Whole ISO Image?</title>

      <para>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!</para>

      <para>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!</para>

      <para>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.</para>

    </sect2>



		<sect2 id="whatisjigdo"><title>What Is Jigdo?</title>

      <para>Jigdo (which stands for "Jigsaw Download") was written by <ulink
      url="mailto:atterer@debian.org">Richard Atterer</ulink> 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.</para>

      <para>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 be the person
      offering the ISO image (perhaps he's the Debian release manager).  Let Betty be the person who
      wants to download the ISO image (perhaps she's a Debian user).

      <orderedlist>

      <listitem>

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

      </listitem>

      <listitem>
      
        <para>The second step is that Betty downloads the <filename>.jigdo</filename> and
        <filename>.template</filename> files.  She then uses jigdo-lite along with these two files
        to download Adam's ISO image.</para>
     
     </listitem>
     
     </orderedlist>

      <para>The jigdo tool comes with two utilities: jigdo-file and jigdo-lite.  Jigdo-file is used
      by Adam to create the .template and .jigdo files from the ISO image he wants to offer.
      Jigdo-lite is used by Betty to download the image using the <filename>.jigdo</filename> and
      <filename>.template</filename> files.  If all you want to do is download Debian ISOs, you'll
      only be using jigdo-lite.  You can forget that jigdo-file even exists. &nbsp;  :-)</para>
			
      
      <para>Jigdo addresses all the problems with the other methods of obtaining Debian ISO
      images:</para>

			<itemizedlist>

			<listitem><para>It's much faster than downloading the entire ISO image.</para></listitem>

      <listitem><para>Unlike downloading the entire ISO image, it can take an outdated CD (or a loop
      mounted outdated ISO image), download <emphasis>only</emphasis> 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.</para></listitem>

      <listitem><para>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).</para></listitem>

      <listitem><para>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.</para></listitem>

      </itemizedlist>

			<para>Clearly, jigdo is the best method of obtaining Debian ISO images.</para>

		</sect2>

</sect1>





<sect1 id="howjigdoworks"><title>How Jigdo Works (optional)</title>

  <para>You don't need to know this material to use jigdo, but it may help demystify what jigdo
  does.  If you're not interested in the details, simply fast forward to <xref
  linkend="downloadingyourfirstimage">, "How Do I Use Jigdo".</para>


    <sect2 id="preparingtheisofordownload"><title>Preparing The ISO For Download</title>

      <para>A CD image is a filesystem called iso9660, but for this discussion, we can safely talk
      about a CD image as being a big file called an "ISO image" (about 650MB) that contains files
      at various offsets.  For instance, if a CD contains a 567 byte file named README, the ISO
      image might contain the README file's contents between offsets 20480000 and 20480567.  You can
      visualize a CD image as:</para>

      <screen>
                    --------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                    --------------------------------------------------------
      </screen>

      <para>The "x" areas of the image contain things like directory information, zero padding, disk
      name, boot block, etc.</para>

      <para>jigdo-file takes two things as input: the complete CD image (so the ISO already needs to
      have been made) and a set of files which may or may not be in the image.  Here's a
      visualization of jigdo-file's input:</para>

      <screen>
                    --------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                    --------------------------------------------------------

                         ----------  ----------              ----------    ----------
      Loose Files:       | file-0 |  | file-1 |              | file-3 |    | file-4 |
                         ----------  ----------              ----------    ----------
      </screen>

      <para>Through magic, jigdo-file finds out which of the loose files are contained in the ISO
      image and their offsets within the ISO file.  It outputs two files: a ".template" file and a
      ".jigdo" file.</para>

    </sect2>




    <sect2 id="the.templatefile"><title>The .template File</title>

      <para>Given an input of an ISO image and a set of files which may or may not be in the ISO
      image, jigdo-file outputs a .template file for that ISO image.  Here's what the .template file
      looks like:</para>

      <screen>
                    --------------------------------------------------------
      .template:    |xxxx| md5-0  |xx| md5-1  |xxx|cccccccc|x| md5-3  |xxxx|
                    --------------------------------------------------------
      </screen>

      <para>jigdo-file found that the files <filename>file-0</filename>, <filename>file-1</filename>
      and <filename>file-3</filename> were contained in the ISO image.  It removed the contents of
      the these files and replaced them with each file's md5 checksum (the
      <filename>md5-0</filename>, <filename>md5-1</filename>, etc).</para>

      <para>The "<literal remap="bf">x</literal>" data (directory information, zero padding, etc)
      within the ISO image is compressed and written to the .template file.  Finally, any files
      within the ISO image that weren't supplied as loose files (like <filename>file-2</filename>)
      are also compressed and written to the .template file.  This is shown as "<literal
      remap="bf">c</literal>" data in the .template file visualization.</para>

      <para>Loose files which were supplied to jigdo-file that aren't found in the ISO image (like
      <filename>file-4</filename>) are ignored.</para>

    </sect2>




    <sect2 id="the.jigdofile"><title>The .jigdo File</title>

      <para>Given an input of an ISO image and a set of loose files which may or may not be in the
      ISO image, jigdo-file outputs a .jigdo file for that ISO image.  The Debian .jigdo files are
      gzipped, so you need to use zcat or zless to view them.  Here's what a .jigdo file looks like
      when you gunzip it:</para>

      <screen>
      md5-0=http://somemirror.org/file-0
      md5-1=http://somemirror.org/file-1
      md5-2=http://somemirror.org/file-2
      md5-3=http://somemirror.org/file-3
      </screen>

      <para>The .jigdo file simply provides a mapping between the md5sum of a file within the ISO
      image and the download URL of that file.  There are some other things within the .jigdo file,
      and if you look through it, you'll see the .jigdo file has the same format as a ".ini" file.
      It should be self explanatory, but if you want the nitty-gritty details, see the jigdo
      documentation.</para>

      <para>The format shown above is not quite what you'd see in a typical .jigdo file, but it's
      very similar.  If you look at the [Servers] section at the bottom of the .jigdo file, you'll
      see exactly what the difference is between what I showed above and an actual .jigdo
      file.</para>

    </sect2>




    <sect2 id="downloadingtheimage"><title>Downloading The Image</title>

      <para>Once you use jigdo-file to generate a .jigdo and .template file for an ISO image, anyone
      can use jigdo-lite to download that image.  jigdo-lite downloads all the files of a Debian ISO
      using wget, assembles them and forms a copy of the original ISO image on the fly.</para>

    </sect2>

</sect1>





<sect1 id="downloadingyourfirstimage"><title>Downloading Your First Image (In 5 Easy Steps)</title>

  <para>We'll assume that you're starting from scratch and don't have any Debian ISOs on hand.  Once
  you burn your set of ISOs, you can use jigdo-lite later to update them.  We'll cover updating your
  ISOs in the next section.</para>



		<sect2><title>Install Jigdo</title>

			<para>First install the jigdo-file package:</para>

			<screen>
      # apt-get install jigdo-file
			</screen>

      <para>Jigdo is under aggressive development.  Bug fixes and enhancements are constant, so if
      you're using stable or testing, download jigdo-file from unstable at <ulink url=
      "http://packages.debian.org/unstable/utils/jigdo-file.html"
      >http://packages.debian.org/unstable/utils/jigdo-file.html</ulink>.  As of 08 Feb 2003 it's at
      >version 0.6.9.   This is
      the version used for the examples of this HOWTO.</para>

      <para>Note to Woody users: The version of jigdo-lite which comes with Woody (rev 1) is not
      capable of downloading Sarge or Sid.  See <xref linkend="needtoupgrade">.  A bugfixed version
      of jigdo 0.6.5 was submitted for the future release of r2.</para>

		</sect2>



		<sect2 id="downloadthe.templateand.jigdofiles"><title>Download The .template And .jigdo Files</title>

      <para>For each ISO image you want to download, you'll need both the .jigdo and .template file
      for that image.  Both files follow the same naming convention:</para>

      <screen>
      distro-arch-n.jigdo
      distro-arch-n.template
      </screen>

      <para>where distro is the name of the distro (like "sarge"), arch is the architecture (like
      "i386") and n is the disk number (like "1").</para>

      <para>For example, sarge has 8 images, so you need to download 8 .jigdo files and 8 .template
      files.  They can be downloaded from <ulink url="http://www.debian.org/CD/jigdo-cd/"
      >http://www.debian.org/CD/jigdo-cd/</ulink>.  The first .jigdo and .template file are named
      <filename>sarge-i386-1.jigdo</filename> and <filename>sarge-i386-1.template</filename>
      respectively.</para>

		</sect2>



		<sect2 id="runjigdo-lite"><title>Run jigdo-lite</title>

      <para>Run jigdo-lite and give it the .jigdo file of the image you want to download.  Using
      Woody as an example:</para>

			<screen>
      lucifer$ ls
      sarge-i386-1.jigdo  sarge-i386-1.template
      lucifer$ jigdo-lite sarge-i386-1.jigdo 
      
      Jigsaw Download "lite"
      Copyright 2001-2003 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Getting mirror information from /etc/apt/sources.list
      
      -----------------------------------------------------------------
      Images offered by `sarge-i386-1.jigdo':
        1: 'Debian GNU/Linux testing "Sarge"
               - Official Snapshot i386 Binary-1 CD' (sarge-i386-1.iso)
      
      Further information about `sarge-i386-1.iso':
      Generated on Fri, 7 Feb 2003 20:31:28 -0700
      
      -----------------------------------------------------------------
      If you already have a previous version of the CD you are
      downloading, jigdo can re-use files on the old CD that are also
      present in the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom').
      Alternatively, just press enter if you want to start downloading
      the remaining files.
      Files to scan: 
			</screen>

      <para>If you suspended jigdo-lite with cntrl-z (don't do this; I'll tell you what you'd see)
      and looked at the output of <command>ls</command>, you'd find a new file in the directory
      named <filename>sarge-i386-1.jigdo.unpacked</filename>.  It turns out that .jigdo files are
      gzip'ed.  This file is simply a gunzip'ed version of the .jigdo file.</para>

      <para>Right now, jigdo-lite is telling us that if we have an outdated version of first CD of
      sarge, we should give the pathname to the CD.  This is how you update your ISO images (or
      complete your incomplete downloads).  Since we're assuming that you're starting from scratch
      and have no Debian ISOs yet, we have nothing to scan.   We'll cover this in <xref
      linkend="updatingyourimage">, so just press <keycap>ENTER</keycap>.</para>

		</sect2>



		<sect2 id="specifyamirror"><title>Specify A Mirror</title>

			<para>You'll see:</para>

			<screen>
      -----------------------------------------------------------------
      The jigdo file refers to files stored on Debian mirrors. Please
      choose a Debian mirror as follows: Either enter a complete URL
      pointing to a mirror (in the form
      `ftp://ftp.debian.org/debian/'), or enter any regular expression
      for searching through the list of mirrors: Try a two-letter
      country code such as `de', or a country name like `United
      States', or a server name like `sunsite'.
      Debian mirror [http://linux.csua.berkeley.edu/debian/]: 
			</screen>

      <para>jigdo-lite is smart enough to use the mirror that you use for your Debian updates (you
      may have noticed that jigdo-lite was peeking at <filename>/etc/apt/sources.list</filename> in
      the last screen capture) by pulling it from <filename>/etc/apt/sources.list</filename>.  If
      you wanted to use a different mirror, you would specify a different mirror here by following
      the instructions.  If this is the mirror you want to use, press <keycap>ENTER</keycap>.
      Jigdo-lite will then write a <filename>~/.jigdo-lite</filename> file in your home
      directory.</para>

      <para>Next, if the .jigdo file you're using references a package which needs to be downloaded
      from a Non-US server, jigdo-lite will prompt you for a Debian Non-US mirror.  The message
      displayed (and your response) will be very similar to the mirror dialog in the previous
      paragraph (for the non-non-US mirror. &nbsp; (-: &nbsp;).</para>

			<screen>
      -----------------------------------------------------------------
      The jigdo file also refers to the Non-US section of the Debian
      archive. Please repeat the mirror selection for Non-US. Do not
      simply copy the URL you entered above; this does not work because
      the path on the servers differs!
      Debian non-US mirror [http://linux.csua.berkeley.edu/debian-non-US//]: 
			</screen>

      <para>Jigdo-lite will write your choice to <filename>~/.jigdo-lite</filename>.  However, if
      the image you're about to download doesn't contain Non-US software you won't see this
      dialog.</para>
			
      <para>If you want to change the default mirrors you use with jigdo at any time in the future,
      you can modify these two lines:</para>

      <screen>
      debianMirror='http://some-mirror-to-use/debian/'
      nonusMirror='http://some-other-mirror/debian-non-US/'
      </screen>

      <para>in <filename>~/.jigdo-lite</filename>.</para>

		</sect2>




		<sect2 id="downloadingoftheiso"><title>Downloading Of The ISO</title>

      <para>After you specify the mirror(s), jigdo-lite will begin downloading files to assemble the
      ISO image:</para>

      <screen>
      Not downloading .template file - `sarge-i386-1.template' already present
      
      -----------------------------------------------------------------
      Merging parts from `file:' URIs, if any...
      Found 0 of the 826 files required by the template
      Will not create image or temporary file - try again with different input files
      --09:35:12--  http://linux.csua.berkeley.edu/debian/pool/main/p/pack/pack_3.10-1_i386.deb
          => `sarge-i386-1.iso.tmpdir/linux.csua.berkeley.edu/debian/pool/main/p/pack/pack_3.10-1_i386.deb
      Resolving linux.csua.berkeley.edu... done.
      Connecting to linux.csua.berkeley.edu[128.32.112.231]:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 1,911,624 [application/x-debian-package]
      
      19% [======>                              ] 378,304      149.87K/s    ETA 00:09
      </screen>

      <para>There'll be a lot of messages flying across your screen; if this is confusing to you,
      see <xref linkend="wgetoptions">.  While jigdo-lite is downloading the packages, switch to
      another console (or open another xterm) and do an <command>ls</command> in the directory
      you're running jigdo-lite in.  Now there should be 6 files in the directory:</para>

			<itemizedlist>
			<listitem><para><filename>sarge-i386-1.iso.list</filename></para></listitem>
			<listitem><para><filename>sarge-i386-1.iso.tmp</filename></para></listitem>
			<listitem><para><filename>jigdo-file-cache.db</filename></para></listitem>
			<listitem><para><filename role="directory">sarge-i386-1.iso.tmpdir/</filename></para></listitem>
			<listitem><para><filename>sarge-i386-1.jigdo</filename></para></listitem>
			<listitem><para><filename>sarge-i386-1.jigdo.unpacked</filename></para></listitem>
			<listitem><para><filename>sarge-i386-1.template</filename></para></listitem>
			</itemizedlist>

      <para>The <filename role="directory">sarge-i386-1.iso.tmpdir/</filename> directory contains
      all the Debian packages that jigdo downloads.  Every so often, the directory gets flushed and
      the files get written to <filename>sarge-i386-1.iso.tmp</filename>, which is an temporarily
      incomplete version of the ISO image you want.  Note that
      <filename>sarge-i386-1.iso.tmp</filename> won't appear until the first time <filename
      role="directory">sarge-i386-1.iso.tmpdir/</filename> gets flushed.</para>

      <para><filename>jigdo-file-cache.db</filename> is a Berekeley DB file containing md5sums of
      any files read in when you specify a directory at the <literal>Files to scan:</literal>
      prompt.  It's described in <xref linkend="jigdo-file-cache">.</para>

      <para>At this point, go play some Quake III because this will take some time (you may want to
      play on a different machine because jigdo is very disk intensive when it flushes files to the
      <filename>.iso.tmp</filename> file).  At some point, the download will finish and you'll be
      staring at:</para>

			<screen>
      FINISHED --13:32:58--
      Downloaded: 7,469,872 bytes in 9 files
      Found 9 of the 9 files required by the template                              
      Successfully created `sarge-i386-3.raw'
      
      -----------------------------------------------------------------
      Finished!
      The fact that you got this far is a strong indication that `sarge-i386-3.raw'
      was generated correctly. I will perform an additional, final check,
      which you can interrupt safely with Ctrl-C if you do not want to wait.
      
      OK: Checksums match, image is good!   
			</screen>

		</sect2>


<!--
    <sect2><title>Lies, Damn Lies, and Statistics</title>

      <para>OK, well I didn't exactly lie about anything.  And thankfully, there are no statistics in this HOWTO.  However, I
      did simplify a few things for the sake of simplicity.</para>


        <sect3><title>You don't actually need a <literal>.template</literal> file</title>

        <para></para>

        </sect3>

    </sect2>
-->

</sect1>


<!-- hello dolly -->






<!--

			<orderedlist>
			<listitem><para>If you have an outdated copy of the CD:  Mount it and give jigdo-lite the path to your CD.  On Debian,
				this is most likely <filename role="directory">/cdrom</filename>.</para></listitem>
			<listitem><para>If you have an outdated copy of the ISO file:  Currently, jigdo-lite can't scan an outdated ISO image
				file (it's on the TODO list), but you can employ a trick to use your ISO file.  ISO files are actually filesystems, just
				like the filesystems on your hard drive, but their contained in a file rather than a partition on your drive.  Linux
				can mount these files just as if they were filesystems on a partition.  Mount the ISO file as a loop device
				using <command>mount -o loop /path/to/iso/outdated-iso.iso /mnt</command>.  If you look at <filename
				role="directory">/mnt</filename>, you'll see the CD image.  Then give the directory <filename
				role="directory">/mnt</filename> to jigdo-lite and it will scan your outdated ISO file.</para></listitem>
			</orderedlist>
-->


<sect1 id="updatingyourimage"><title>Updating Your Image</title>

  <para>Presumably, you've read the last section, followed the instructions, burned your newly
  created ISO files onto CD and are feeling warm and fuzzy.  Sooner or later, some packages will get
  updated and now you want to donate your old CDs to some newbie at your local LUG's installfest and
  burn yourself a set of updated CDs.  Since you're well on the way to becoming a jigdo-guru, we
  won't go into as much painful detail as we did in the last section.</para>

  <para>The first step is to download the .jigdo and .template files, again, for the images you want
  to update.  You may wonder why you need to download them a second time.  The reason is because the
  updated image you want to download has changed.  Files may have been added or deleted, but even if
  not, any updated packages or files will have a different checksum from the checksum listed in the
  .jigdo and .template files you used when you first downloaded the images.</para>

  <para>At this point, you're either holding an outdated Debian CD in your hand or you have the CD's
  outdated ISO image on your hard drive.  Let's go through the steps of getting an updated ISO file.
  If you have a CD, put it in your CD drive and mount it:</para>

	<screen>
      $ mount /cdrom
	</screen>

  <para>On the other hand, if you have an ISO file you'd like to update, mount it as a loop device
  (you may need to be root to do this).  I'll be updating my Woody image, since I noticed that Woody
  just got a few security updates:</para>

	<screen>
      # mount -o loop woody-i386-1.iso /mnt
	</screen>

	<para>Now run jigdo-lite with the .jigdo file as an argument.</para>

<!-- good for 0.6.8-1 -->
	<screen>
      $ jigdo-lite woody-i386-1.jigdo 
      
      -----------------------------------------------------------------
      Jigsaw Download "lite"
      Copyright 2001-2002 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Loading settings from `/home/p/.jigdo-lite'
      
      -----------------------------------------------------------------
      Images offered by `woody-i386-1.jigdo':
        1: Debian GNU/Linux 3.0 r0 Woody
             - Official i386 Binary-1 CD (debian-30r0-i386-binary-1.iso)
      
      Further information about `debian-30r0-i386-binary-1.iso':
      Generated on Thu, 18 Jul 2002 14:34:12 +0100
      
      -----------------------------------------------------------------
      If you already have a previous version of the CD you are
      downloading, jigdo can re-use files on the old CD that are also
      present on the new image, and you do not need to download them
      again.  You found the secret message; you're a very careful
      reader.  Mount the old CD ROM and enter the path it is mounted
      under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you
      want to start the download of any remaining files.
      
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan:
	</screen>

  <para>jigdo-lite is asking us to give it the location of your mounted CD (if you're updating a CD)
  or your loop mounted ISO file (if you're using the ISO file).  I'm using an ISO file loop mounted
  on <filename role="directory">/mnt</filename>, so I'll enter <literal>/mnt</literal>.  If you're
  updating a CD, enter the mount directory of your CD, which is most likely
  <literal>/cdrom</literal>.  In either case, jigdo-lite will scan the directory of your mounted
  media, determine which files need updating and re-use the files which don't need updating.  You
  may see something like:</para>
	

<!-- good for 0.6.8-1 -->
	<screen>
      Files to scan: /mnt/other
      
      Not downloading .template file - `woody-i386-1.template' already present
      jigdo-file: Output file `debian-30r0-i386-binary-1.iso' already exists - delete
      it or use --force
      jigdo-file failed with code 3 - aborting.
	</screen>


  <para>What happened?  Actually, I wanted to show you this because you'll bump into it sooner or
  later.  I'm updating an ISO file, but the outdated image file is in the same directory I'm working
  in.  Jigdo-lite wants to generate a file called <filename>woody-i386-1.iso</filename> but there's
  already a file by that name in the current directory (the outdated image).  Jigdo-lite doesn't
  want to destroy that file, so it bails and lets me know that I can either delete that file or use
  <literal>--force</literal> to overwrite the file.   You could also rename or move the file too,
  but I guess jigdo-lite assumes we already know this. &nbsp;  :-)</para>
	
  <para>Don't be timid about moving or renaming the image file just because it's loop mounted.  The
  filesystem uses inodes under the hood, and even if you move or rename the file, the inode stays
  the same.  You won't hurt the filesystem mounted under <filename role="directory">/mnt</filename>.
  As for deleting the ISO file, that won't hurt the mounted filesystem either.  A file's inode gets
  deallocated only when the inode's reference count drops to zero.  Mounting the ISO image bumps the
  reference count up, so the file really gets deleted only after you <command>rm</command> the file
  <emphasis>and</emphasis> umount the loop device.  All you people who are updating the CD don't
  have to worry about any of this.  :-)</para>

  <para>I'll rename the ISO file to <filename>woody-i386-1.iso.old</filename> and run jigdo-lite
  again.  Let's try again:</para>

	<screen>
      $ jigdo-lite woody-i386-1.jigdo
      
      -----------------------------------------------------------------
      Jigsaw Download "lite"
      Copyright 2001-2002 by Richard Atterer &lt;jigdo@atterer.net&gt;
      Loading settings from `/home/p/.jigdo-lite'
      
      -----------------------------------------------------------------
      Images offered by `woody-i386-1.jigdo':
        1: Debian GNU/Linux 3.0 r0 Woody - Official i386 Binary-1 CD
             (debian-30r0-i386-binary-1.iso)

      Further information about `debian-30r0-i386-binary-1.iso':
      Generated on Thu, 18 Jul 2002 14:34:12 +0100
      
      -----------------------------------------------------------------
      If you already have a previous version of the image you are
      downloading, jigdo can re-use files on the old image that are also
      present on the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want
      to start the download of any remaining files.
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan: /mnt
      Not downloading .template file - `woody-i386-1.template' already present
      ...
      Found 1200 of the 1224 files required by the template                          
      ...
</screen>

  <para>jigdo-lite remembers that I wanted to scan <filename role="directory">/mnt</filename> and
  tells me I can either type <literal>1</literal> to scan that directory or type the directory in
  again.  Since I'm a perverse person, I type the name of the directory again.</para>

  <para>The ellipsis represent some text that changes rapidly.  The first ellipsis is a dynamic list
  of what files jigdo-lite is scanning.  The second ellipses deonotes progress in writing
  <filename>woody-i386-1.iso.tmp</filename>.  Once jigdo-lite finishes scanning the files and
  writing the temporary ISO file, it prints:</para>

	<screen>
      Copied input files to temporary file `woody-i386-1.iso.tmp'
         - repeat command and supply more files to continue
      
      -----------------------------------------------------------------
      If you already have a previous version of the image you are
      downloading, jigdo can re-use files on the old image that are also
      present on the new image, and you do not need to download them
      again. Mount the old CD ROM and enter the path it is mounted under
      (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want
      to start the download of any remaining files.
      You can also enter a single digit from the list below to
      select the respective entry for scanning:
        1: /mnt
      Files to scan: 
	</screen>

  <para>Since you normally don't have another source of files to scan other than your loop mounted
  ISO file (or your CD), press &lt;ENTER&gt;.  Jigdo-lite will then ask you about which mirrors you
  want to use, just like it did when you downloaded your ISO for the first time.  You've already
  answered these questions before, but if you truly don't remember, you might want to re-read <xref
  linkend="specifyamirror">.</para>

	<para>At this point, you'll see jigdo-lite working its magic.  Now wasn't that easy?</para>

</sect1>




<sect1 id="faq"><title>Frequently Asked Questions</title>

  <para>Questions prepended with a date indicate a time sensitive question (a question that relates
  to a temporary situation).  If you see one of these questions and know that the temporary
  situation has changed, please <ulink url="mailto:p@dirac.org">contact me</ulink> and let me know
  so I can remove the question from the mini-HOWTO.</para>



    <sect2 id="useproxy"><title>How do I make jigdo use my proxy?</title>

      <para>Load the file <filename>~/.jigdo-lite</filename> (or
      <filename>jigdo-lite-settings.txt</filename> for the Microsoft Windows version) into a text
      editor and find the line that starts with "<literal>wgetOpts</literal>".  The following
      switches can be added to the line:</para>

      <screen>
      -e ftp_proxy=http://LOCAL-PROXY:PORT/
      -e http_proxy=http://LOCAL-PROXY:PORT/
      --proxy-user=USER
      --proxy-passwd=PASSWORD
      </screen>

      <para>Of course, substitute the correct values for your proxy server.  The last two options
      are only necessary if your proxy uses password authentication.  The switches need to be added
      to the end of the wgetOpts line before the final <literal>'</literal> character.  All options
      must be on one line.</para>

      <para>Alternatively, under Linux you can also set up the <varname>ftp_proxy</varname> and
      <varname>http_proxy</varname> environment variables, for example in the file
      <filename>/etc/environment</filename> or <filename>~/.bashrc</filename>.</para>

    </sect2>



    <sect2><title>Jigdo-lite fails with an error - have I downloaded all those MBs in vain?</title>

      <para>Of course this Should Not Happen(tm), but for various reasons you may end up in a state
      where a large "<literal>.iso.tmp</literal>" file has already been generated and jigdo-lite
      appears to have problems, telling you repeatedly to try restarting the download. There are
      several possible things to try in this case:</para>

      <itemizedlist>

      <listitem><para>Simply restart the download by pressing <keycap>Return</keycap>.  Maybe some
      of the files could not be downloaded because of timeouts or other transient errors -- another
      attempt will be made to download any missing files.</para></listitem>

      <listitem><para>Try a different mirror.  Some Debian mirrors are slightly out of sync -- maybe
      a different mirror still holds files that were deleted from the one you specified, or it has
      already been updated with files that are not yet present on your mirror.</para></listitem>

      <listitem><para>Retrieve the missing parts of the image using <ulink
      url="http://rsync.samba.org">rsync</ulink>.  First, you need to find out the correct rsync URL
      of the image you are downloading: Choose a server that offers rsync access to the <ulink
      url="http://www.debian.org/CD/mirroring/rsync-mirrors">stable</ulink> or <ulink
      url="http://www.debian.org/CD/http-ftp/#testing">testing</ulink> images, then determine the
      correct path and filename.  Directory listings can be obtained with commands like
      <command>rsync rsync://cdimage.debian.org/debian-cd/</command>.</para>

        <para>Next, remove the "<literal>.tmp</literal>" extension from jigdo-lite's temporary file
        by renaming it, and pass both the remote URL and the local filename to rsync: <command>rsync
        rsync://server.org/path/binary-i386-1.iso binary-i386-1.iso</command> You may want to use
        rsync's <literal>--verbose</literal> and <literal>--progress</literal> switches to get
        status messages, and <literal>--block-size=8192</literal> to increase its
        speed.</para></listitem>

      <listitem><para>If all else fails, your downloaded data is still not lost.  Under Linux, you
      can loop-mount the <literal>.tmp</literal> file to access the packages that were already
      downloaded, and reuse them for generating an image from a newer jigdo file (such as the latest
      daily testing snapshot if your failed download was also a testing snapshot).  To do this,
      first issue the following commands as root in the directory with the broken download:
      <command>mkdir mnt; mount -t iso9660 -o loop *.tmp mnt</command>.  Next, start a new download
      in a different directory, and enter the path of the mnt directory at the "Files to scan"
      prompt.</para></listitem>

      </itemizedlist>

    </sect2>



		<sect2 id="disacknowledgements"><title>[11 Aug 2002]: Why aren't the translations of this HOWTO on LDP?</title>

      <para>I've been having trouble getting the translations of this HOWTO submitted to the
      non-English LDP editors.</para>

      <para>The German LDP editor, Marco Budde <email>Budde@tu-harburg.de</email> refuses to accept
      the German translation because it was written in Docbook and not Linuxdoc, even though Docbook
      is the preferred SGML language for the LDP.  It's a shame that we have people within the open
      source community who would sabotage our community from the inside.</para>
			
      <para>The Portuguese LDP editor, Alfredo Carvalho <email>ajpc@poli.org</email>, has completely
      ignored my submission of the Portuguese translation.</para>
			
      <para>If you care about having LDP documents in these languages, I urge you to write to these
      editors and ask them to please be more responsible about accepting translated documents.  For
      the time being, you can download these translations from my personal website, <ulink
      url="http://www.dirac.org/linux/debian/jigdo"
      >http://www.dirac.org/linux/debian/jigdo</ulink>.</para>

		</sect2>



		<sect2><title>jigdo takes a bit long to download the files because wget keeps disconnecting and then reconnecting to the FTP
		server for each file.  Is there a way to make it faster?</title>

      <para>The download speed can be increased by using an HTTP instead of an FTP server - FTP is
      not a very efficient protocol for downloading lots of small files. Additionally, you may want
      to upgrade to the latest version of wget, because that version supports persistent HTTP
      connections, which results in another slight speed increase.</para>

      <para>Unfortunately, even with persistent HTTP connections, the download speed will not be as
      high as that of a single-file ISO download. Such speeds can only be achieved with HTTP
      pipelining - the jigdo GUI application will support pipelining.</para>

		</sect2>



		<sect2 id="interrupted"><title>What do I do if my jigdo download gets interrupted?</title>

      <para>If your download gets interrupted, all you need to do is restart jigdo-lite and hit
      &lt;ENTER&gt; at all the question prompts.  Jigdo-lite will pick up where it left off.</para>

		</sect2>



		<sect2><title>My jigdo download won't complete because the .jigdo file is broken.  When I download a new, fixed .jigdo file,
		do I need to download all the data over again?</title>

      <para>You may find that the .jigdo file you downloaded is broken.  It's very uncommon, but it
      does happen from time to time with moving targets like Debian testing or unstable.</para>
			
      <para>If you find that your .jigdo file is broken, you'll need to download a new .jigdo file
      (when a fixed one becomes available), but you <emphasis>won't</emphasis> need to download all
      the ISO data again.</para>

      <para>You can use the same loop mounting trick we use when updating an ISO image.  The
      difference is that there's no finished .iso file to start with, but the .iso.tmp file is an
      ISO image too and can be used to finish the download without having to re-download all the
      data that was downloaded before the broken .jigdo file caused jigdo-file to halt.  Simply loop
      mount the .iso.tmp file on <filename role="directory">/mnt</filename> and when you re-run
      jigdo-lite with the fixed .jigdo file, tell jigdo-lite to scan <filename
      role="directory">/mnt</filename>.  Don't forget to rename or move the .iso.tmp file so it
      doesn't interfere with jigdo-lite which will want to create a new .iso.tmp file.</para>

		</sect2>



		<sect2><title>Can I use jigdo to download images for DVD?</title>

      <para>Absolutely; the process is identical to downloading CD images.  The only thing you need
      to do differently is to download the .jigdo and .template files for DVDs instead of CDs.  You
      can find the DVD .jigdo and .template files at <ulink
      url="http://www.debian.org/CD/jigdo-cd/">http://www.debian.org/CD/jigdo-cd/</ulink>.</para>

      <para>Note that you need Linux 2.4 or later to create DVD-sized files.  Under Windows,
      DVD-sized images can't be created at all at the moment because the C++ library of the mingw
      gcc port doesn't have big file support yet.</para>

		</sect2>



		<sect2><title>Can I burn the <filename>.iso.tmp</filename> file to CD?</title>

      <para>Thanks to Gordon Huff and David Anselmi, we now know the answer is "yes you can".   But
      more importantly, Gordon gave a good reason why you'd want to do this in the first place.
      Paraphrasing Gordon:</para>

      <blockquote>
      <para>My friend's Win98 has a *nice* cable connection.  I arrive in the morning, start jigdo
      (more than one, actually) and then we go to the store, tie back the kiwi plant, put up the
      Christmas lights and Christmas tree, trim the tree, order and split a pizza and fire up the
      satellite dish.</para>

      <para>I leave my friends place with several iso.tmp's on CDRWs.  When I get home, I use the
      iso's that didn't finish to update my jigdo setup at home which is a dial-up.</para>
      </blockquote>

		</sect2>



		<sect2><title>Why doesn't jigdo work?  It downloads some packages and deletes them.  I know it doesn't write them to the
		<filename>iso.tmp</filename> file because the file size doesn't change!</title>

      <para>Jigdo works just fine - the .iso.tmp file is created at the beginning with its final
      size, but filled with zero bytes.  Later, parts of it are overwritten with the downloaded
      data.</para>

      <para>You can tell that jigdo is making progress by looking at the messages "<literal>Found X
      of the Y files required by the template</literal>" that are printed from time to time.  The
      second value "<literal>Y</literal>" should decrease.  When it reaches zero, the download is
      finished.</para>

		</sect2>



		<sect2 id="troublewithjigdoeasy"><title>I'm having trouble getting jigdo-easy to work.</title>

			<para>See <xref linkend="jigdo-easy">.</para>

		</sect2>



		<sect2 id="needtoupgrade"><title>[10 Feb 2003]: I'm having trouble getting jigdo to download Sarge or Sid.</title>

      <para>If you're using Potato or Woody: because of a change in jigdo, the version of jigdo-lite
      that comes with Potato and Woody (r0 and r1) cannot download Sarge and Sid images.  The
      jigdo-file packages from Sarge (0.7.0-2) and Sid (0.7.0-2) can download Sarge and Sid images.
      Also, a bugfixed version of jigdo-file (0.6.5) was submitted for inclusion for Woody r2 and
      will hopefully be available when r2 comes out.  However, because of bug fixes and
      enhancements, you're urged to use jigdo-file from Sarge or Sid.</para>

      <para>If you're using Sarge or Sid, then you may need some help.  Search the archives of the
      debian-cd mailing list, and if that doesn't solve your problem, you should send them a request
      for help (<xref linkend="links">).</para>

		</sect2>



		<sect2 id="wgetoptions"><title>Jigdo-lite is too verbose.  How can I supress some or all of its messages?</title>

      <para>Jigdo-lite uses wget, and wget's output can be quite verbose.  If this is unsettling,
      you can make wget more quiet by adding <literal>--non-verbose</literal> to the
      <literal>wgetOpts</literal> switch in your <filename>~/.jigdo-lite</filename> file.  If you
      want wget to print no messages at all, use <literal>--quiet</literal> in the
      <literal>wgetOpts</literal> switch.</para>

    </sect2>



    <sect2 id="otherplatforms"><title>Can I use jigdo on platforms other than Linux?</title>

      <para>Certainly.  If you're interested in Potato or Woody under Microsoft Windows, old SunOS,
      HP-UX and IRIX you can use jigdo-easy.  See <xref linkend="jigdo-easy"> and <xref
      linkend="links">.</para>

      <para>If you want to download Potato, Woody, Sarge or Sid under Microsoft Windows, jigdo-lite
      has been ported to that platform and can be downloaded from the main jigdo site (<xref
      linkend="links">).</para>

		</sect2>



    <sect2><title>On MS Windows, why do I get a "<literal>No such file or directory</literal>" error message?</title>

      <para>You might find that under MS Windows, jigdo-lite will download some files but then fail
      to read their contents, which will produce a "<literal>No such file or directory</literal>"
      error message.

      <para>It seems that this occurs if the length of the filenames that jigdo processes exceeds a
      certain limit. The solution is to move the half-finished download up in the directory
      hierarchy, closer to the top-level directory of the drive.</para>



    <sect2><title>On MS Windows, why won't my image grow larger than 2GB?</title>

      <para>When creating DVD images under Microsoft Windows with jigdo-win, you should be aware
      that there's a 2GB filesize limit.  This is due to the C++ library of mingw32 compiler which
      is used to compile jigdo-win.  Apparently, the library doesn't have big file support due to
      some oversight of its developers.  This means the 2GB filesize limit exists even under
      NTFS.</para>

      <para>It's hoped that this limitation will be corrected with a future release of ming32.</para>

    </sect2>


</sect1>







<sect1 id="errata"><title>Errata</title>

		<sect2 id="jigdo-easy"><title>jigdo-easy</title>

      <para>Jigdo-easy, by Anne Bezemer, is a fork from jigdo-lite which is portable to a wider
      range of systems, including Microsoft Windows, old SunOS, HP-UX and IRIX).  It's also easier
      to use than jigdo-lite but because of changes made to Jigdo, will only work with Potato and
      Woody.  Jigdo-easy will not be able to download Sarge and Sid.  See <xref linkend="links"> and
      <xref linkend="otherplatforms">.</para>

		</sect2>




		<sect2><title>GUI Interface</title>

      <para>A GTK+ interface to jigdo is currently being worked on.  It's not fully functional yet,
      but will be available at some point.  There will be a Linux as well as a Windows GUI
      client.</para>

		</sect2>




		<sect2 id="jigdo-file-cache"><title>jigdo-file-cache.db</title>

      <para>The cache contains the md5sums of files read when you supply a directory at the
      <literal>Files to scan:</literal> prompt.  If you have jigdo-file scan the same directory a
      second time, the scan will be very fast.</para>

      <para>This could be useful in the following case: rev0 gets updated to rev1.  With the rev1 CD
      images, some packages may have been pushed from CD <literal>n</literal> to CD
      <literal>n+1</literal>, or vice versa.  If you had a particularly slow link (e.g.  modem),
      you'd try to avoid downloading these packages again.  For this reason, when downloading the
      new version of CD <literal>n</literal>, you'd let jigdo-lite scan the three CDs
      <literal>n-1</literal>, <literal>n</literal> and <literal>n+1</literal> (or even all 8 CDs if
      you want to be 100% sure).</para>

      <para>If you have jigdo-lite scan the same CDs over and over again while updating each of the
      8 CD images, the cache will prevent all the data on the CDs from being read multiple
      times.</para>

      <para>The cache is much more important when <emphasis>generating</emphasis> jigdo files,
      because you don't want jigdo-file to read in your whole 50GB Debian mirror for every generated
      jigdo file.</para>

		</sect2>




		<sect2 id="links"><title>Resources</title>

      <para>This HOWTO is winding down to a close, but I thought I'd leave you with a few links and
      references to learn more about the jigdo tools and how they work.</para>

			<variablelist>
			<varlistentry>
        <term>
        <ulink url="http://atterer.net/jigdo">http://atterer.net/jigdo</ulink>
        </term>
        <listitem>
        <para>This is the jigdo home site.  You should definitely browse this site; lots of
        information about ports, GUI clients and everything under the sun relating to jigdo.</para>
        </listitem>
      </varlistentry>

			<varlistentry>
        <term>
        <ulink url="http://cdimage.debian.org/~costar/jigdo"
          >http://cdimage.debian.org/~costar/jigdo</ulink>
        </term>
  			<listitem>
        <para>The Debian page for jigdo-easy (<xref linkend="jigdo-easy">).</para>
        </listitem>
			</varlistentry>

			<varlistentry>
        <term>
        <ulink url="http://www.debian.org/CD/jigdo-cd">http://www.debian.org/CD/jigdo-cd</ulink>
        </term>
				<listitem>
        <para>The main Debian page for jigdo.</para>
        </listitem>
			</varlistentry>

			<varlistentry>
        <term>
        <ulink url="http://packages.debian.org/testing/utils/jigdo-file.html"
          >http://packages.debian.org/testing/utils/jigdo-file.html</ulink>
        </term>
        <listitem>
        <para>If you're using Potato or Woody, please upgrade jigdo-file to version <literal>0.7.0-2</literal>,
        which comes with testing or unstable (<xref linkend="needtoupgrade">).</para>
        </listitem>
			</varlistentry>

			<varlistentry>
        <term><ulink url="http://lists.debian.org/search.html">http://lists.debian.org/search.html</ulink>
        </term>
        <listitem>
        <para>You can use this page to search the debian-cd mailing list archives.</para>
        </listitem>
			</varlistentry>

			<varlistentry>
      <term>
      <ulink url="http://www.debian.org/MailingLists/subscribe"
        >http://www.debian.org/MailingLists/subscribe</ulink>
      </term>
			<listitem>
      <para>The subscription page for the debian-cd mailing list.</para>
      </listitem>
			</varlistentry>

			</variablelist>

		</sect2>

</sect1>
	


</article>

<!--
vim: tw=100:expandtab
-->

