Debian Jigdo mini-HOWTO
Prev |  | Next

# 4. Downloading Your First Image (In 5 Easy Steps)

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.

## 4.1. Install Jigdo

First install the jigdo-file package:

          # apt-get install jigdo-file

Jigdo is under aggressive development. Bug fixes and improvements are constant, so if you're using stable or testing, download jigdo-file from unstable at http://packages.debian.org/unstable/utils/jigdo-file.html. As of 19 July 2002 it's at version 0.6.8. This is the version used for the examples of this HOWTO.

Note to Woody users: The version of jigdo-lite which comes with Woody (rev 0) is not capable of downloading Sarge or Sid. See Section 6.11.

## 4.2. Download The .template And .jigdo Files

For each ISO image you want to download, you'll need two files:

- The .jigdo file for the disk image you want to download.

- The .template file for the disk image you want to download.

Example: Woody has 8 images, so you need to download 8 .jigdo files and 8 .template files. They can be downloaded from http://www.debian.org/CD/jigdo-cd/ and are named `woody-i386-1.iso.jigdo`, `woody-i386-1.iso.template`, `...`, and `woody-i386-8.iso.template`.

Alternatively, instead of downloading a .jigdo and .template file for each ISO image, you can give jigdo-lite an URL that points to the .jigdo file that you need, like `http://a.mirror/woody-i386-1.jigdo`. jigdo-lite will download the relevent .jigdo and .template files on the fly. However, if you're a bit nervous about using jigdo-lite for the first time, just download the files and I'll walk you through the process.

## 4.3. Run jigdo-lite

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

          $ jigdo-lite woody-i386-1.jigdo

Alternatively, if you're working with an URL to the .jigdo file rather than a copy of the .jigdo file on your hard drive, run jigdo-lite with an argument of the URL:

          $ jigdo-lite http://a.mirror/woody-i386-1.jigdo

You'll see something like:

          -----------------------------------------------------------------
          Jigsaw Download "lite"
          Copyright 2001-2002 by Richard Atterer <jigdo@atterer.net>
          Getting mirror information from /etc/apt/sources.list
          -----------------------------------------------------------------
          Images offered by `woody-i386-1.iso.jigdo':
            1: woody-i386-1.iso

          -----------------------------------------------------------------
          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. 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.
          Files to scan:

If you forget to pass jigdo-lite a .jigdo file, it will prompt you for one (or an URL that points to one).

If you suspended jigdo-lite with cntrl-z (don't do this; I'll tell you what you'd see) and did an ls, you'd find a new file in the directory named `woody-i386-1.iso.jigdo.unpacked`. This file is simply a gunzip'ed version of the .jigdo file.

Right now, jigdo-lite is telling us that if we did have an outdated version of the CD, to give the pathname to the CD. 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 Section 5). So just press <ENTER>.

## 4.4. Specify A Mirror

You'll see:

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

jigdo-lite is smart enough to use the mirror that you use for your Debian updates by pulling it from `/etc/apt/sources.list` (you can see that I use `linux.csua.berkeley.edu` for my updates). If you wanted to use a different mirror, you would specify a different mirror here. If this is the mirror you want to use, press <ENTER>. Jigdo-lite will then write a `.jigdo-lite` file in your home directory.

Next, if the .jigdo file you're using references a package which needs to be downloaded from a Non-US server (software encumbered by US export restrictions), jigdo-lite will prompt you for a Non-US server. The message displayed (and your response) will be very similar to the mirror dialog described in the previous paragraph. The only difference is that you need to specify (or accept the default value for) a Non-US server. If the ISO image you're about to download contains Non-US software, you'll see:

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

and jigdo-lite will write your choice to your `$HOME/.jigdo-lite` file. However, if the image you're about to download doesn't contain Non-US software you won't see this dialog.

Note that you can reset the default mirrors that jigdo uses for your future downloads in `$HOME/.jigdo-lite` file with the following lines:

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

## 4.5. Downloading Of The ISO

After specifying the mirror(s), jigdo-lite will look for the .template file. If it can't find one, it'll download a .template file from a mirror. After it finds the .template file (or after it downloads one), you'll see:

          -----------------------------------------------------------------
          Merging parts from `file:' URIs, if any...
          Found 0 of the 1224 files required by the template
          Will not create image or temporary file - try again with different input files
          --13:38:08--  http://linux.csua.berkeley.edu/debian/pool/main/b/bind9/
                lwresd_9.2.1-2.woody.1_i386.deb => `lwresd_9.2.1-2.woody.1_i386.deb'
          Resolving linux.csua.berkeley.edu... done.
          Connecting to linux.csua.berkeley.edu[128.32.247.238]:80... connected.
          HTTP request sent, awaiting response... 200 OK
          Length: 157,318 [application/x-debian-package]

          30% [==========>                          ] 47,418       113.22K/s    ETA 00:00
          ...

After the .template file was found (or after it was downloaded), jigdo-lite begins pulling packages onto your hard drive. There will be alot of messages flying across your screen. If this is confusing to you, see Section 6.12. While jigdo-lite is downloading the packages, switch to another console (or open another xterm) and do an ls in the directory you're running jigdo-lite in. Now there should be 6 files in the directory:

- `debian-30r0-i386-binary-1.iso.list`

- `debian-30r0-i386-binary-1.iso.tmp`

- `jigdo-file-cache.db`

- `tmp/`

- `woody-i386-1.jigdo`

- `woody-i386-1.jigdo.unpacked`

- `woody-i386-1.template`

`woody-i386-1.iso.tmp` won't appear right away. It's a temporary version of the ISO file that gets written to every so often.

`jigdo-file-cache.db` is a Berekeley DB file containing md5sums of any files read in when you specify a directory at the `Files to scan:` prompt. It's more fully described in Section 7.3.

`tmp/` is a directory containing Debian package files that get downloaded. For instance, as I write this, it contains:

          $ ls tmp/
          alsa-headers-0.5_0.5.12a-2_all.deb  tkdiff_3.08-3_all.deb
          alsa-utils-0.4_0.4.1-9.1_i386.deb   xfonts-intl-chinese-big_1.2-2.1_all.deb
          gnuserv_3.12.4-3_i386.deb           xmanpages-ja_4.1.0.20011224-1_all.deb
          pilot-link_0.9.5.0-8_i386.deb       xscreensaver_3.34-3_i386.deb
          smpeg-plaympeg_0.4.4-8_i386.deb

Every so often, the directory gets flushed and the files get added to `woody-i386-1.iso.tmp`.

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 assembles the ISO file). At some point, the download will finish and you'll be staring at:

          FINISHED --13:32:58--
          Downloaded: 7,469,872 bytes in 9 files
          Found 9 of the 9 files required by the template
          Successfully created `woody-i386-3.raw'

          -----------------------------------------------------------------
          Finished!
          The fact that you got this far is a strong indication that `woody-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!
          $

Prev | Home | Next
How Jigdo Works (optional) |  | Updating Your Image