Introduction
While I have been using zsync to update ISO files for some time, I have become aware that jigdo, jigdo-lite and jigdo-file do a similar job. This exercise is to try out jigdo and compare it with zsync.
Procedure
I checked using Synaptic and found that I had jigdo already installed from the Ubuntu [Feisty] repositories. The version I am using is : --
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-lite -v
Jigsaw Download "lite"
Copyright (C) 2001-2005 | jigdo@
Richard Atterer | atterer.net
Loading settings from `/home/paul/.jigdo-lite'
jigdo-lite/0.7.3 (GNU Wget 1.10.2; )
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo -v
jigdo version 0.7.3
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-file -v
jigdo-file version 0.7.3
- I first built a template from an existing ISO file.
- Using this template, after renaming the file to .old, I ran jigdo-lite to 'update' the ISO using the '.old' and the '.jigdo' files as input.
- The process ran and built the 'updated' ISO file, checked it for md5sum equivalence and verified it as successfully created.
- Output of this process is documented below.
Exemplar
Documentation of the process in dummy run.
Update Dreamlinux with jigdo-lite
ls -l
total 716060
-rw------- 1 paul paul 731076608 2008-11-01 22:43 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync.save
-rw-r--r-- 1 paul paul 5723 2008-11-01 23:52 zsync-update.txt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-file DL3.5-RC4_211008.iso
jigdo-file: Invalid command `DL3.5-RC4_211008.iso'
(Must be one of: make-template mt make-image mi print-missing pm print-missing-all pma verify ver scan sc list-template ls md5sum md5)
jigdo-file: Try `jigdo-file -h' or `man jigdo-file' for more information
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-file -mt DL3.5-RC4_211008.iso
jigdo-file: invalid option -- m
jigdo-file: Try `jigdo-file -h' or `man jigdo-file' for more information
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-file mt DL3.5-RC4_211008.iso
jigdo-file make-template: Not all of --image, --jigdo, --template specified.
(Attempt to deduce missing names failed.)
jigdo-file: Try `jigdo-file -h' or `man jigdo-file' for more information
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-file mt --image DL3.5-RC4_211008.iso
Warning - no files specified. The template will contain the complete image contents!
Finished - image size is 731076608 bytes.
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 1424744
-rw------- 1 paul paul 731076608 2008-11-01 22:43 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync.save
-rw-r--r-- 1 paul paul 256 2009-01-21 21:32 DL3.5-RC4_211008.jigdo
-rw-r--r-- 1 paul paul 724972911 2009-01-21 21:32 DL3.5-RC4_211008.template
-rw-r--r-- 1 paul paul 5723 2008-11-01 23:52 zsync-update.txt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ cat DL3.5-RC4_211008.jigdo
# JigsawDownload
# See <http://atterer.net/jigdo/> for details about jigdo
[Jigdo]
Version=1.2
Generator=jigdo-file/0.7.3
[Image]
Filename=DL3.5-RC4_211008.iso
Template=DL3.5-RC4_211008.template
Template-MD5Sum=grWhJ7aDpiFgE1XsHWcJlQ
[Servers]
[Parts]
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ jigdo-lite DL3.5-RC4_211008.jigdo
Jigsaw Download "lite"
Copyright (C) 2001-2005 | jigdo@
Richard Atterer | atterer.net
Loading settings from `/home/paul/.jigdo-lite'
-----------------------------------------------------------------
Images offered by `DL3.5-RC4_211008.jigdo':
1: DL3.5-RC4_211008.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 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:
Not downloading .template file - `DL3.5-RC4_211008.template' already present
-----------------------------------------------------------------
Merging parts from `file:' URIs, if any...
/usr/bin/jigdo-file: Output file `DL3.5-RC4_211008.iso' already exists - delete it or use --force
jigdo-file failed with code 3 - aborting.
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 1424744
-rw------- 1 paul paul 731076608 2008-11-01 22:43 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync.save
-rw-r--r-- 1 paul paul 256 2009-01-21 21:32 DL3.5-RC4_211008.jigdo
-rw-r--r-- 1 paul paul 724972911 2009-01-21 21:32 DL3.5-RC4_211008.template
-rw-r--r-- 1 paul paul 5723 2008-11-01 23:52 zsync-update.txt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ mv DL3.5-RC4_211008.iso DL3.5-RC4_211008.iso.old
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ time jigdo-lite DL3.5-RC4_211008.jigdo
Jigsaw Download "lite"
Copyright (C) 2001-2005 | jigdo@
Richard Atterer | atterer.net
Loading settings from `/home/paul/.jigdo-lite'
-----------------------------------------------------------------
Images offered by `DL3.5-RC4_211008.jigdo':
1: DL3.5-RC4_211008.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 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:
Not downloading .template file - `DL3.5-RC4_211008.template' already present
-----------------------------------------------------------------
Merging parts from `file:' URIs, if any...
Found 0 of the 0 files required by the template
Successfully created `DL3.5-RC4_211008.iso'
-----------------------------------------------------------------
Finished!
The fact that you got this far is a strong indication that `DL3.5-RC4_211008.iso'
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!
real 4m57.577s
user 0m42.291s
sys 0m39.362s
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$ ls -l
total 2139408
-rw-r--r-- 1 paul paul 731076608 2009-01-21 21:53 DL3.5-RC4_211008.iso
-rw-r--r-- 1 paul paul 55 2008-10-31 22:16 DL3.5-RC4_211008.iso.md5sum
-rw------- 1 paul paul 731076608 2008-11-01 22:43 DL3.5-RC4_211008.iso.old
-rw-r--r-- 1 paul paul 1428059 2008-10-31 23:24 DL3.5-RC4_211008.iso.zsync.save
-rw-r--r-- 1 paul paul 256 2009-01-21 21:32 DL3.5-RC4_211008.jigdo
-rw-r--r-- 1 paul paul 724972911 2009-01-21 21:32 DL3.5-RC4_211008.template
-rw-r--r-- 1 paul paul 16384 2009-01-21 21:50 jigdo-file-cache.db
-rw-r--r-- 1 paul paul 5723 2008-11-01 23:52 zsync-update.txt
paul@PAULS-Klikit:/mnt/Data1/NewHome/paul/ISOfiles$
Note: This is the saved output of my console window, mistakes and all.
Links
Peter Jay Salzman
<p_at_dirac.org >
Copyright © 2001 Peter Jay Salzman
2004-01-08, v1.1
Linux Documentation Project - Jigdo mini-how-to : --
Debian Jigdo mini-HOWTO http://tldp.org/HOWTO/Debian-Jigdo/index.html
Creating the template and .jigdo files for hosting.
There is extensive information on how-to do this, but cutting through all that will take some time. Here's what I have tried : --
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$ jigdo-file make-template --image ubuntu-9.10-desktop-i386.iso
Warning - no files specified. The template will contain the complete image contents!
Finished - image size is 723488768 bytes.
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$ ls -l
total 1406316
-rw------- 1 paul paul 1018170 2006-05-20 09:17 jigdo-bin-0.7.3.tar.bz2
-rw-r--r-- 1 paul paul 723488768 2009-10-30 10:49 ubuntu-9.10-desktop-i386.iso
-rw------- 1 paul paul 27824 2009-10-30 01:01 ubuntu-9.10-desktop-i386.iso.torrent
-rw-r--r-- 1 paul paul 272 2009-11-01 12:58 ubuntu-9.10-desktop-i386.jigdo
-rw-r--r-- 1 paul paul 714099651 2009-11-01 12:58 ubuntu-9.10-desktop-i386.template
-rw-r--r-- 1 paul paul 963 2009-10-30 11:07 Ubuntu9.10.txt
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$ cat ubuntu-9.10-desktop-i386.jigdo
# JigsawDownload
# See <http://atterer.net/jigdo/> for details about jigdo
[Jigdo]
Version=1.2
Generator=jigdo-file/0.7.3
[Image]
Filename=ubuntu-9.10-desktop-i386.iso
Template=ubuntu-9.10-desktop-i386.template
Template-MD5Sum=XEqTbGEJxslyatAN-LrpYw
[Servers]
[Parts]
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$ jigdo-file ls --template ubuntu-9.10-desktop-i386.template
in-template 0 723488768
image-info 723488768 h5BJG_qdAPKD7Z3S13s5Bg 1024
paul@paul-ArtistX07:/media/Spare/DownloadedISOfiles/Ubuntu9.10$
So, obviously, that is not a great deal of help!
Continuing to read the man file, I see : --
EXAMPLES
PREPARING YOUR CD IMAGE FOR DISTRIBUTION
You have created a CD image ‘image.iso’ from some of the files stored in the directory
‘/home/ftp’ on your harddisc, which is also available online as ‘ftp://mysite.org’. As
you don’t want to waste space by effectively hosting the same data twice (once as files
on the FTP server, once inside the image), and you are fed up with users’ downloads
aborting after 200MB and their restarting the download dozens of times, you decide to
use jigdo. How do you prepare the image for download?
In fact, only one command is necessary:
jigdo-file make-template --image=image.iso --jigdo=/home/ftp/image.jigdo --tem‐
plate=/home/ftp/image.template /home/ftp// --label Mysite=/home/ftp --uri
Mysite=ftp://mysite.org/
People can now point jigdo at ‘ftp://mysite.org/image.jigdo’ to download your image.
The template file needs to be accessible as ‘ftp://mysite.org/image.template’.
Note that nothing prevents you from doing the same for an FTP server that isn’t admin‐
istrated by you - in that case, you only need to host the ‘.jigdo’ and ‘.template’
files on your own server/homepage.
CUSTOMIZED VERSIONS OF IMAGES
Because it is possible to assign a different URI for each part of an image if neces‐
sary, jigdo is very flexible. Only one example is the possibility of customized ver‐
sions of images: Suppose that someone is distributing a CD image, and that you want to
make a few small changes to it and redistribute your own version. You download the
‘official.iso’ CD image with jigdo (passing it the URL of ‘official.jigdo’), write it
to CD-R, make your changes (say, adding files from the ‘myfiles’ directory on your
harddisc) and produce your own version, ‘myversion.iso’. Next, you instruct jigdo-file
to create the jigdo and template files for your modified image, using the command
jigdo-file make-template --image=myversion.iso /mnt/cdrom/ myfiles// --label
My=myfiles/ --uri My=http://my.homepage.net/ --merge=official.jigdo
while ‘official.iso’ is mounted under ‘/mnt/cdrom’. By using --merge, you have told
jigdo-file to take the contents of ‘official.jigdo’, add to it a new ‘[Image]’ section
for ‘myversion.iso’ and write the resulting jigdo file to ‘myversion.jigdo’ - so now
‘myversion.jigdo’ offers two images for download, the original version and your modi‐
fied version. (If you do not want it to offer the official version, edit it and remove
the ‘[Image]’ section that lists ‘official.iso’.)
Now you can upload the ‘.jigdo’ file, the ‘.template’ file and also the files in
‘myfiles’ to ‘http://my.homepage.net/’. Thus, for people to download your modified
image, you do not need to upload the complete image contents to your web space, but
only the changes you made!
(In case you only made very few changes, you could also omit the ‘myfiles’ parameter in
the command above, then all your changes end up in the new template file.)
Comments (0)
You don't have permission to comment on this page.