Использование jigdo

Теория

Jigdo это аббревиатура от Jigsaw Download. Домашняя страничка – http://atterer.net/jigdo. Там кстати много информации, а здесь представлена только step-by-step howto.

Jigdo предназначен для облегчения распространения по сети больших файлов. Например iso образов дисков.

Наиболее выгодным является использование jigdo вместе с локальным зеркалом. В этом случае jigdo будет докачивать только те файлы которых нехватает в зеркале.

                          -------------------------------------------------------------------
      ISO Image:    |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
                          -------------------------------------------------------------------
                     	 -----------------------------------------------------------------------------
      .template:    |xxxx| md5-0  |xx| md5-1  |xxx|cccccccc|x| md5-3  |xxxx|
                         -----------------------------------------------------------------------------
       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

jigdo файлы содержат:

  1. инструкции как собрать iso образ, или любой другой большой файл.
  2. список файлов необходимый для создания образа.

Нужный нам скрипт jigdo-mirror находится в пакете jigdo-file. В этот пакет входят следующие программы:

jigdo-file - скрипт для создание файлов *.template и *.jigdo.
jigdo-lite - интерактивный скрипт для сборки файлов
jigdo-mirror - скрипт для создания iso образов на основе jigdo файлов.

Установка

aptitude install jigdo-file

Конфигурирование

jigdo-mirror это самодокументируемый скрипт. Его можно просмотреть:

shell> cat /usr/bin/jigdo-mirror

Переменные можно изменить в самом скрипте, но лучше создать конфигурационный файл:

shell> cat jigdo-config
   jigdoDir="/s0/storage/distr/debian-jigdo"
   imageDir="/s0/storage/distr/debian-testing"
   tmpDir="/tmp"
   debianMirror="file:/s0/storage/mirror/debian"
   nonusMirror="file:/s0/storage/mirror/debian"
   maxMissing=1000
  • jigdoDir – каталог jigdo файлами (*.jigdo и *.template).
  • imageDir – каталог где будут созданы iso образы.
  • tmpDir – временный каталог куда будут скачиваться файлы составляющие iso образ.
  • debianMirror – локальное зеркало где jigdo будет искать файлы, недостающие файлы будут скачены по сети.
  • nonusMirror – локальное зеркало для non-us секции
  • maxMissing – максимальное количество файлов отсутствующих в образе. Т.е. максимальное количество файлов которое мы будем скачивать по сети.

Web зеркало для недостающих файлов будет выбрано из sources.list.

Скачиваем нужные *.jigdo и *.template для каждого iso образа:

shell> wget -c ftp://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/*

И помещаем их в директорию, которая определена в нашем конфигурационном файле как jigdoDir:

e.g. /s0/storage/distr/debian-jigdo/

e.g:

shell> ls -lh
total 56M
-rw-r--r-- 1 root root 131K 2007-04-30 11:45 debian-testing-i386-DVD-1.jigdo
-rw-r--r-- 1 root root  41M 2007-04-30 11:45 debian-testing-i386-DVD-1.template
-rw-r--r-- 1 root root 140K 2007-04-30 11:47 debian-testing-i386-DVD-2.jigdo
-rw-r--r-- 1 root root 4.6M 2007-04-30 11:47 debian-testing-i386-DVD-2.template
-rw-r--r-- 1 root root 235K 2007-04-30 11:49 debian-testing-i386-DVD-3.jigdo
-rw-r--r-- 1 root root 7.5M 2007-04-30 11:49 debian-testing-i386-DVD-3.template
-rw-r--r-- 1 root root  69K 2007-04-30 11:50 debian-testing-i386-DVD-4.jigdo
-rw-r--r-- 1 root root 2.1M 2007-04-30 11:50 debian-testing-i386-DVD-4.template
-rw-r--r-- 1 root root  207 2006-09-02 14:59 jigdo-config
-rw-r--r-- 1 root root  256 2007-04-30 11:50 MD5SUMS

Т.е. на текущий день все jigdo файлы для 4 dvd(lenny – testing) дисков занимают 56M.

Все. Теперь достаточно выполнить:

shell> jigdo-mirror jigdo-config

И через некоторое время забирать iso образы.

p.s.

  • На текущий момент (Debian 4.0r0 etch) в jigdo-file есть bug:
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418694Временным решением является, прописывание в конфигурационный файл:

    jigdo-file --cache=$tmpDir/jigdo-cache.db --cache-expiry=1w --report=noprogress

    т.е. без опции: –no-check-files

  • Так же jigdo-mirror использует неправильные опции для wget:
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=422059
    wgetOpts=»–passive-ftp –no-directories –non-verbose»Опцию:

    --non-verbose

    следует заменить на

    --no-verbose

    лучше всего это сделать в локальном файле конфигурации.

  • Добавить комментарий