mirror of https://github.com/tLDP/LDP
1450 lines
64 KiB
Plaintext
1450 lines
64 KiB
Plaintext
<!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.orgZZZ</email></address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<!-- year-month-day -->
|
|
<pubdate>2005-12-05 ver 1.8</pubdate>
|
|
|
|
<copyright>
|
|
<year>2001</year>
|
|
<holder>Peter Jay Salzman</holder>
|
|
</copyright>
|
|
|
|
<legalnotice>
|
|
<para><email>p@dirac.orgZZZ</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 tool for distributing and 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.orgZZZ">p@dirac.orgZZZ</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. 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'd 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>I would like 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. 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.netZZZ">Conrad Wood</ulink>,
|
|
Elcio Mello,
|
|
<ulink url="mailto:mramos@montevideo.com.uyZZZ">Marcelo Ramos</ulink>,
|
|
Yufeng Wang,
|
|
Tsukasa Yamaguchi,
|
|
<ulink url="mailto:kozlov.y@gmail.comZZZ">Yuri Kozlov</ulink>, and
|
|
<ulink url="mailto:oguzy@comu.edu.trZZZ">Oguz Yarimtepe</ulink>
|
|
for translating this mini-HOWTO into languages other than English. 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.nlZZZ">Mark van Lent</ulink>,
|
|
Gordon Huff,
|
|
David Anselmi,
|
|
<ulink url="mailto:thierry.cabuzel@skynet.beZZZ">Thierry Cabuzel</ulink>,
|
|
<ulink url="mailto:rlharris@hal-pc.orgZZZ">Russell L. Harris</ulink>, and
|
|
<ulink url="mailto:tux-master@web.deZZZ">Jens Seidel</ulink>
|
|
for kind words and 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. News flash: I've
|
|
completed my Ph.D.; now I'm swamped with job hunting. Does anyone need to hire a theoretical
|
|
physicist?</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="version"><title>Latest Version And Translations</title>
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term>German:</term>
|
|
<listitem><para>Conrad Wood <email>cnw@conradwood.netZZZ</email>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Portuguese</term>
|
|
<listitem><para>Elcio Mello.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Spanish</term>
|
|
<listitem><para>Marcelo Ramos <email>mramos@montevideo.com.uyZZZ</email>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Chinese</term>
|
|
<listitem><para>Yufeng Wang</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Japanese</term>
|
|
<listitem>
|
|
<para>Tsukasa Yamaguchi. 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>
|
|
|
|
<varlistentry>
|
|
<term>Russian</term>
|
|
<listitem>
|
|
<para>Yuri Kozlov <email>kozlov.y@gmail.comZZZ</email>. Available at <ulink
|
|
url="http://alioth.debian.org/project/showfiles.php?group_id=30279"
|
|
>http://alioth.debian.org/project/showfiles.php?group_id=30279</ulink>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Turkish</term>
|
|
<listitem>
|
|
<para>Oguz Yarimtepe <email>oguzy@comu.edu.trZZZ</email>. Available at <ulink
|
|
url="http://docs.comu.edu.tr/howto/debian-jidgo.html"
|
|
>http://docs.comu.edu.tr/howto/debian-jigdo.html</ulink>.</para></listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
<para>In addition to the URLs given above, all the translations (as well as the English
|
|
version) 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.orgZZZ">p@dirac.orgZZZ</ulink></email>.</para>
|
|
|
|
<para>The English version of this HOWTO can also be found at The Linux Documentation Project:
|
|
<ulink url="http://tldp.org/docs.html">http://tldp.org/docs.html</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 a 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>
|
|
<listitem><para>Using the pseudo-image kit (PIK)</para></listitem>
|
|
</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 (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.</para>
|
|
|
|
|
|
<orderedlist>
|
|
|
|
<listitem>
|
|
<para>Adam first 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 small files associated with his newly created 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>Betty then downloads the <filename>.jigdo</filename> and
|
|
<filename>.template</filename> files. She uses <application>jigdo-lite</application> along
|
|
with these two files to download Adam's ISO image.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>When Debian gets updated, Adam creates a new version of the ISO and generates new
|
|
<filename>.jigdo</filename> and <filename>.template</filename> files.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>When Betty wants to update her CDs, she downloads the new <filename>.jigdo</filename>
|
|
and <filename>.template</filename> files and uses them with
|
|
<application>jigdo-light</application> 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.</para>
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
|
|
<para>Jigdo comes with two utilities: <application>jigdo-file</application> (used by Adam)
|
|
which creates the <filename>.jigdo</filename> and <filename>.template</filename> files, and
|
|
<application>jigdo-lite</application> (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
|
|
<application>jigdo-lite</application>. You can forget that jigdo-file even exists.
|
|
:-)</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 download Debian ISOs, but it may help demystify how
|
|
jigdo works. 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><application>jigdo-file</application> 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
|
|
<filename>.template</filename> 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 <application>jigdo-file</application> 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
|
|
<filename>.jigdo</filename> file,
|
|
and if you look through it, you'll see the <filename>.jigdo</filename> 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
|
|
<filename>.jigdo</filename> file.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="downloadingtheimage"><title>Downloading The Image</title>
|
|
|
|
<para>Once you use <application>jigdo-file</application> to generate a
|
|
<filename>.jigdo</filename> and .<filename>template</filename> file for an ISO image, anyone
|
|
can use <application>jigdo-lite</application> to download that image. jigdo-lite downloads
|
|
all the files of a Debian ISO using <application>wget</application>, 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 28 Nov 2005 it's at
|
|
version 0.7.2-2.</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 <application>jigdo-lite</application> and give it the <filename>.jigdo</filename>
|
|
file of the image you want to download. Using Sarge 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 <jigdo@atterer.net>
|
|
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 <application>jigdo-lite</application> with <keycombo
|
|
action='simul'><keycap>control</keycap><keycap>z</keycap></keycombo>
|
|
(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 <filename>.jigdo</filename> file.</para>
|
|
|
|
<para>Right now, <application>jigdo-lite</application> 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>
|
|
|
|
<para>See also <xref linkend="more-about-scan">, "More About Scan Sources".</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>By default, <application>jigdo-lite</application> pulls the mirror from your
|
|
<filename>/etc/apt/sources.list</filename>. If you want to use a different mirror, you would
|
|
specify a different mirror here. 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 <filename>.jigdo</filename> file you're using references a package which
|
|
needs to be downloaded from a Non-US server, <application>jigdo-lite</application> 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.</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 in <filename>~/.jigdo-lite</filename>:</para>
|
|
|
|
<screen>
|
|
debianMirror='http://some-mirror-to-use/debian/'
|
|
nonusMirror='http://some-other-mirror/debian-non-US/'
|
|
</screen>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
|
<sect2 id="downloadingoftheiso"><title>Downloading Of The ISO</title>
|
|
|
|
<para>After you specify the mirror(s), <application>jigdo-lite</application> 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://mirror/debian/pool/main/p/pack/pack_3.10-1_i386.deb
|
|
=> `sarge-i386-1.iso.tmpdir/mirror/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 <application>jigdo-lite</application> 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>
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
<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). Using Woody as an example:</para>
|
|
|
|
<screen>
|
|
# mount -o loop woody-i386-1.iso /mnt
|
|
</screen>
|
|
|
|
<para>Now run <application>jigdo-lite</application> with the <filename>.jigdo</filename> 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 <jigdo@atterer.net>
|
|
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 <filename
|
|
role="directory">/mnt</filename>. If you're updating a CD, enter the mount directory of your CD,
|
|
which is most likely <literal>/cdrom</literal>. In either case,
|
|
<application>jigdo-lite</application> will scan the directory of your mounted media, determine
|
|
which files need updating and re-use the files which don't need updating. See also <xref
|
|
linkend="more-about-scan">, "More About Scan Sources".</para>
|
|
|
|
<para>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 <application>jigdo-lite</application> assumes we already know this. :-)</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
|
|
<application>jigdo-lite</application> again. Let's try again:</para>
|
|
|
|
<screen>
|
|
$ jigdo-lite woody-i386-1.jigdo
|
|
|
|
-----------------------------------------------------------------
|
|
Jigsaw Download "lite"
|
|
Copyright 2001-2002 by Richard Atterer <jigdo@atterer.net>
|
|
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 denotes 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 <keycap>ENTER</keycap>. 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 <application>jigdo-lite</application> 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.orgZZZ">contact me</ulink> and let me know
|
|
so I can remove the question from the mini-HOWTO.</para>
|
|
|
|
|
|
<sect2><title>Why does jidgo ask <emphasis>twice</emphasis> for scanning for existing files? Is
|
|
it enough to say yes once ?</title>
|
|
|
|
<para>It keeps asking this as long as you enter a path to scan. The idea is that you may want
|
|
to scan several old CDs, so you can insert one after the other into the drive and keep
|
|
supplying the path "<literal>D:\</literal>" (or whatever). See also <xref
|
|
linkend="more-about-scan">, "More About Scan Sources".</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2><title>Jigdo Has Problems Downloading Certain Filenames.</title>
|
|
|
|
<para>When downloading Debian images under Windows, jigdo-lite may appear to have trouble
|
|
downloading one or more of the following files:</para>
|
|
|
|
<screen>
|
|
libbusiness-onlinepayment-bankofamerica-perl_xxx_all.deb
|
|
libbusiness-onlinepayment-authorizenet-perl_xxx_all.deb
|
|
libbusiness-onlinepayment-payconnect-perl_xxx_all.deb
|
|
libmasonx-request-withapachesession-perl_xxx_all.deb
|
|
libtemplate-plugin-calendar-simple-perl_xxx_all.deb
|
|
</screen>
|
|
|
|
<para>Move the jigdo download directory up by as many directories as possible, closer to the
|
|
drives's root directory.</para>
|
|
|
|
<para>The NTFS filesystem has a 255 character limit on a file's pathname. When jigdo-lite
|
|
downloads files from the internet, it makes a copy of the server directory structure in its
|
|
download directory. With their very long names, the above Debian packages may exceed the
|
|
allowed path length, which leads to error messages like "<literal>Cannot write to `[very long
|
|
pathname]' (No such file or directory)</literal>".</para>
|
|
|
|
|
|
<para>Some people may now wonder: Why does jigdo-lite use wget's
|
|
"<literal>--force-directories</literal>" switch, which creates these problematic directory
|
|
hierarchies?</para>
|
|
|
|
<para>Early versions of jigdo-lite did not use it, but then some folks requested that
|
|
jigdo-lite always use the "<literal>--continue</literal>" switch to avoid half-downloaded
|
|
.deb files being ignored and deleted when you interrupt and restart jigdo-lite.</para>
|
|
|
|
<para>Unfortunately, it turned out that this led to problems: The Debian servers contained
|
|
several identically named files (e.g. "<literal>root.bin</literal>") in different directories,
|
|
and if you interrupted jigdo-lite at roughly the right time during the download, the chances
|
|
were high that the resumed download would append data to the wrong half-downloaded file,
|
|
corrupting it and making the entire jigdo download fail.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2 id="useproxy"><title>How do I make jigdo use my proxy?</title>
|
|
|
|
<para>Edit <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 that 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>If <application>jigdo-file</application> aborts after downloading a considerable chunk
|
|
of the ISO contents, you'll have a large "<literal>.iso.tmp</literal>" file. There are
|
|
several things to try to salvage your download:</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>Restart the download by pressing <keycap>RETURN</keycap>. Maybe some of the
|
|
files could not be downloaded because of timeouts or other transient errors. Try to download
|
|
the missing files again.</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. This has happened
|
|
quite a few times with me.</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>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. 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>
|
|
|
|
<para>Under Microsoft Windows you can do the same thing by loop mounting the temporary ISO
|
|
image using "virtual drive" software. <application><ulink
|
|
url="http://www.daemon-tools.cc">Daemon tools</ulink></application> and <application>Nero
|
|
Image Drive</application> are both very popular. See also <ulink
|
|
url="http://tinyurl.com/c39zr">http://tinyurl.com/c39zr</ulink> for more options.</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>
|
|
|
|
<para>Shame on you, Marco Budde <email>Budde@tu-harburg.de</email>.</para>
|
|
|
|
<para>Shame on you, Alfredo Carvalho <email>ajpc@poli.org</email>.</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
|
|
<keycap>ENTER</keycap> 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 uncommon, but it does
|
|
happen from time to time with moving targets like Debian testing or unstable.</para>
|
|
|
|
<para>If you find that <filename>.jigdo</filename> 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-lite 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 id="dvdsizedimages"><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>On Linux, you need kernel 2.4 or later to create DVD-sized files.</para>
|
|
|
|
<para>Under MS Windows, you need to use <literal>jigdo-win-0.7.1a</literal> (released 21 July
|
|
2004) or later to create DVD-sized images. This is because of a bug in the large file support
|
|
of Mingw32, the compiler used to create the MS Windows executables. The bug got fixed on this
|
|
date, and <literal>jigdo-win-0.7.1a</literal> was released.</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>Jigdo-lite is broken! It downloads 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 <filename>.iso.tmp</filename> 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
|
|
first value "<literal>X</literal>" should increase. When <literal>X</literal> equals
|
|
<literal>Y</literal>, 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="scanmultipleimages"><title>For image updates, I want jigdo-lite to scan 14
|
|
loop-mounted images in one go. How can I do this?</title>
|
|
|
|
<para>When updating CD images, it's tiresome to keep loop-mounting and unmounting images.
|
|
However, by default the Linux kernel only supports eight loop devices, and jigdo-lite's menu
|
|
of previously entered paths only has five entries.</para>
|
|
|
|
<para>To scan many loop-mounted images, you must first tell the Linux kernel to support more
|
|
than the default eight devices. This is done by giving the "<literal>max_loop</literal>"
|
|
parameter to the module when loading it, e.g. with "<literal>modprobe loop
|
|
max_loop=16</literal>" on the command line or by adding the line "<literal>options loop
|
|
max_loop=16</literal>" to <filename>/etc/modules.conf</filename>. In Debian, you must put
|
|
this line into a file named e.g. <filename>/etc/modutils/local-loop</filename> and then run
|
|
<command>update-modules</command> because direct changes to
|
|
<filename>/etc/modules.conf</filename> will be overwritten.</para>
|
|
|
|
<para>Having mounted the individual images, you can pass the parent directory of their mount
|
|
points to jigdo-lite for scanning. For example, if the images are mounted under <filename
|
|
role="directory">/mnt/myloopmounts/image1/</filename> etc., pass "<filename
|
|
role="directory">/mnt/myloopmounts</filename>" as the path to scan. If passing the parent
|
|
directory is inconvenient, you can also create a directory and fill it with symlinks to the
|
|
mount points.</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>
|
|
|
|
<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>
|
|
|
|
<sect2><title>On MS Windows, why won't my image grow larger than 2GB?</title>
|
|
|
|
<para>You're using an old version of jigdo. Please upgrade to
|
|
<literal>jigdo-win-0.7.1a </literal> or newer. See <xref linkend="dvdsizedimages">.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2><title>On MS Windows, <filename>jigdo-lite.bat</filename> fails with an error message
|
|
saying "sh" was not found.</title>
|
|
|
|
<para>This means that the <literal>PATH</literal> command in the <literal>.bat</literal> file failed. For some
|
|
reason, this is the case if you unpacked jigdo on a Windows network share using a path like
|
|
"<filename role="directory">\\SomeServer\Files\jigdo</filename>". Solution: Use "<command>Map
|
|
network drive</command>" (in the explorer "tools" menu) to assign a drive letter like
|
|
"<literal>Z:</literal>", then double-click on the <literal>.bat</literal> file inside
|
|
"<literal>Z:\jigdo</literal>". Alternatively, a workaround is to move
|
|
everything in the <filename role="directory">jigdo-bin</filename> subdirectory up to where the
|
|
<literal>.bat</literal> file is.</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2><title>Can I run multiple instances of jigdo-lite to download images in parallel?</title>
|
|
<para>Absolutely. However, to avoid filename clashing, you should run each
|
|
<application>jigdo-lite</application> instance in its own separate directory. You can start
|
|
as many instances as you want, go to bed, and when you wake up, all the ISO images will be
|
|
waiting for you on your hard drive. Be aware that <application>jigdo-lite</application> is
|
|
bandwidth and CPU intensive, so you won't want to use your computer with multiple instances
|
|
running in tandem.</para>
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2><title>Is there a GUI interface available?</title>
|
|
|
|
<para>A GTK+ interface to jigdo is being worked on. Both Linux and Microsoft Windows GUI
|
|
clients are planned. Unfortunately, it's been 80% done for over 1.5 years, so don't hold your
|
|
breath for its release.</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 of <application>jigdo-lite</application> 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 id="more-about-scan"><title>More About Scan Sources</title>
|
|
|
|
<para>By now you know that when <application>jigdo-lite</application> asks for files to scan,
|
|
you can use 3 sources:</para>
|
|
|
|
|
|
<itemizedlist mark='bullet'>
|
|
|
|
<listitem><para>A mounted copy of an outdated CD or DVD that you wish to
|
|
update.</para></listitem>
|
|
|
|
<listitem><para>A loop-mounted copy of an outdated ISO image file on your hard
|
|
drive.</para></listitem>
|
|
|
|
<listitem><para>A loop-mounted copy of the temporary <filename>.iso.tmp</filename> file,
|
|
when a previous <application>jigdo-lite</application> run aborted.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>As Jens Seidel points out, there is another, rather crafty, source you should use for a
|
|
scanning source: your apt cache. Apt uses the directory <filename
|
|
role="directory">/var/cache/apt/archives</filename> for cache. There will be many Debian
|
|
packages sitting in this directory, and they can be used for a scan source for
|
|
<application>jigdo-lite</application>! So when you're asked for a directory to scan, by all
|
|
means, use this directory too.</para>
|
|
|
|
<para>If you're editing the <filename>~/.jigdo-lite</filename> file by hand, be aware that
|
|
multiple scan directories are space separated, for example:</para>
|
|
|
|
<screen>
|
|
scanMenu='/var/cache/apt/archives/ /cdrom/'
|
|
</screen>
|
|
|
|
</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>The official webpage for the Debian jigdo-file package.</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>
|
|
|
|
<varlistentry>
|
|
<term>
|
|
<ulink url="https://lists.berlios.de/mailman/listinfo/jigdo-user"
|
|
>https://lists.berlios.de/mailman/listinfo/jigdo-user</ulink>
|
|
</term>
|
|
<listitem>
|
|
<para>The subscription page for the official Jigdo mailing list.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
|
|
|
|
</article>
|
|
|
|
<!--
|
|
vim: tw=100:expandtab
|
|
-->
|
|
|