Debian Jigdo mini-HOWTO
DJ-HOWTO
Peter
Jay
Salzman
p@dirac.orgZZZ
2005-12-05 версия 1.8
2001
Peter Jay Salzman
p@dirac.orgZZZ / www.dirac.org/p.
Распространяется на условиях Open Software
License, версия 1.1.
Аннотация
Загрузка ISO образов Debian всегда была
тяжёлым, медленным и предельно не
эффективным процессом. Jigdo — это
инструмент для получения ISO образов
Debian лёгким, быстрым и очень
эффективным способом.В этом HOWTO
объясняется, почему вы должны
использовать jigdo, как это работает, как
получать и обновлять ISO образы Debian.
Jigdo не писалась специально для
Debian. Утилиты jigdo можно применить к
любому ISO и его загрузка станет такой
же лёгкой, быстрой и эффективной как ISO
Debian. В этом HOWTO будет рассказано как это
делается, но главным образом, мы
сфокусируемся на загрузке ISO образов
Debian.
Administrata
Авторство и права
Авторские права на этот документ
принадлежат (c) 2001 Peter Jay Salzman, p@dirac.orgZZZ.
Разрешается копировать,
распространять и/или изменять этот
документ на условиях Open Software License (OSL)
версии 1.1. Я ненавижу HOWTO, которые
включают текст лицензии; это убийцы
деревьев. Вы можете найти OSL здесь http://opensource.org/licenses/osl-1.1.txt.
Если вы хотите создать что-то своё на
основе этого документа или
опубликовать этот HOWTO в коммерческих
целях, я был бы очень признателен, если
бы вы сначала связались со мной. Это
даст мне шанс предоставить вам самую
последнюю версию. Также, я был бы
благодарен за копию вашей работы или
пиццу со шпинатом, чесноком, грибами,
брынзой и артишоками.
Благодарности
Я хочу поблагодарить автора jigdo, Ричарда
Атерера(Richard Atterer), просто за то, что
он написал jigdo. Всякий, кто загружал ISO
образы Debian другими способами знает
почему.Это HOWTO начиналось с нескольких
веб страниц, где я делился опытом
работы с jigdo. Ричард нашёл время, чтобы
прислать мне по почте обширные
исправления, пояснения и ответить на
мои вопросы о jigdo. Он многократно
перечитывал мою работу. Ричард — это
разработчик, который волнуется не
только за свою работу, но и о людях
которые используют её. Печально, что
этого становится всё меньше в занятом
мире, в котором мы живём. Спасибо,
Ричард!
Также, мне бы хотелось поблагодарить
Conrad Wood, Elcio
Mello, Marcelo
Ramos, Yufeng Wang, Tsukasa Yamaguchi, Юрия Козлова и
Oguz Yarimtepe за
перевод этого mini-HOWTO на другие
языки. Мне приятно, что они нашли мои
слова достойными своего времени и
усилий. Спасибо, ребята!
Наконец, хочу сказать спасибо Mark van Lent, Gordon
Huff, David Anselmi, Thierry Cabuzel,
Russell L. Harris и
Jens Seidel за
присланные исправления.
Комментарии и исправления
Я уделяю много внимания людям,
использующим этот документ. Даже mini-HOWTO
отнимает много времени на написание и
я бы не хотел вкладывать так много
усилий во что-то, чего люди не поняли
бы. Если у вас есть комментарии,
исправления или предложения, даже к
стилю изложения, не стесняйтесь писать
мне. Всё время, пока я полностью не увяз
в моей докторской диссертации и в
книге, которую я пишу про отладку с
помощью GDB/DDD для No Starch Press, я приложу все
усилия, чтобы ответить на каждое
письмо, касающегося этого
mini-HOWTO. Экстренное сообщения: я защитил
докторскую; теперь занимаюсь поиском
работы. Кому-нибудь нужен
физик-теоретик?
Последняя версия и переводы
Немецкий:
Conrad Wood cnw@conradwood.netZZZ.
Португальский
Elcio Mello.
Испанский
Marcelo Ramos mramos@montevideo.com.uyZZZ.
Китайский
Yufeng Wang
Японский
Tsukasa Yamaguchi. Японская версия доступна
по адресу http://www.linux.or.jp/JF/JFdocs/Debian-Jigdo.
Русский
Юрий Козлов
kozlov.y@gmail.comZZZ. Русская версия
доступна по адресу http://alioth.debian.org/project/showfiles.php?group_id=30279.
Турецкий
Oguz Yarimtepe oguzy@comu.edu.trZZZ. Турецкая
версия доступна по адресу http://docs.comu.edu.tr/howto/debian-jigdo.html.
Английская версия и все переводы
доступны на моём веб сайте: http://www.dirac.org/linux/debian/jigdo.
Если вам хочется перевести это mini-HOWTO
на другой язык, свяжитесь со мной
p@dirac.orgZZZ.
Английскую версию этого HOWTO можно
также найти в проекте документации Linux:
http://tldp.org/docs.html.
Почему jigdo?
Как получить набор ISO образов Debian?
Для получения набора CD Debian, существует
много способов. Один из них — купить
его у продавцов CD
Debian. Это определённо стоит того, так
как некоторые продавцы жертвуют
деньги проекту Debian. Ваши пожертвования
помогут обеспечить Debian долгую жизнь.
Другим путём получения набора CD Debian
— самому записать диски. Это влечёт
за собой получение ISO образа и затем
прожиг этого ISO образа на пустой
CD. Когда jigdo не существовало, было два
пути создания CD Debian:
Загрузка ISO файла целиком
Использование pseudo-image kit (PIK)
Этот документ о более новом и лучшем
способе получения ISO образов Debian —
утилите, которая называется
jigdo. Фактически, PIK в настоящий момент
официально заброшен и все дальнейшие
ссылки на него были удалены из этого
документа. Стандартным методом
получения ISO образов Debian является jigdo.
Почему просто не загружать файл ISO образа?
Есть зеркала, предлагающие загрузить
Debian ISO по http и ftp. Проблема в том, что их
не очень много и их каналы не могут
выдержать всех кто хочет Debian
ISO. Например, fsn.hu, как сообщают,
полностью использует пропускную
способность канала своего
провайдера. Исходящий трафик
достигает нескольких терабайт в месяц!
К тому же, Debian testing и unstable часто
обновляются. Ваши ISO могут устареть в
тот же день как вы их скачали, если
только вы не нашли несколько подлый
путь обновления их, типа монтирования
ISO через устройство обратной связи
(loopback) и использования rsync (чем PIK и
занимался). Поэтому, если вы хотите
иметь новейшие образы ISO, вы должны
загружать новый набор образов ISO
каждый день. Ясно, что это не тот путь
которым бы вы хотели получать Debian ISO!
Даже stable ISO образы обновляются каждые
несколько месяцев. То есть загрузка
образов ISO даёт вам новейшие образы на
несколько месяцев, и каждый раз когда
выходит новая версия Debian stable, вам опять
придётся пройти через болезненный
процесс загрузки всего набора ISO. Это
не очень хорошее времяпровождение и
трата ресурсов зеркал.
Что такое Jigdo?
Jigdo (от "Jigsaw Download") была написан Ричардом
Атерером(Richard Atterer) и выпущен под
лицензией GNU GPL. Это утилита, которая
позволяет эффективно загружать и
обновлять ISO образы. Любые образы ISO. Jigdo
не привязан к Debian, однако для Debian он
является официальным методом загрузки
ISO образов.
Есть общее заблуждение, будто jigdo
создаёт образы ISO — это не
так. Давайте в общих чертах обсудим,
как jigdo позволяет вам получить образ
ISO. Пусть Адам (выпускающий релиз Debian)
будет стороной, предлагающей образ
ISO. Пусть Бетти (пользователь Debian) будет
стороной, которая хочет загрузить
образ ISO.
Сначала Адам создаёт образ ISO, который
можно записать на CD. Для создания
образа ISO он может воспользоваться
утилитой типа mkisofs или
debian-cd. Также, для только
что созданного образа ISO, он создаёт
маленьких два файла: .jigdo и
.template. Он выкладывает эти
два файла для загрузки всем, кто хочет
получить образ ISO.
Затем Бетти загружает файлы
.jigdo и .template и
запустив jigdo-lite она
скачает ISO образ Адама.
При обновлении Debian, Адам создаёт
новую версию ISO и генерирует новые
файлы .jigdo и
.template.
Если Бетти хочет обновить свои CD, она
загружает новые файлы .jigdo
и .template и с помощью
jigdo-light обновляет свою
копию ISO образов. Важно понять, что она
скачивает только изменившиеся данные
между старым ISO и новым ISO
Адама. Одинаковые данные скачиваться
не будут.
Пакет jigdo состоит из двух утилит:
jigdo-file (используется
Адамом), которая создаёт файлы
.jigdo и .template, и
jigdo-lite(используется
Бетти), которая основываясь на этих
двух файлах скачивает и обновляет ISO
образ. Если вы просто хотите
скачать/обновить Debian ISO, то вам нужно
использовать только
jigdo-lite. Вы можете даже
забыть о существовании jigdo-file. :-)
Jigdo решает все проблемы, которые есть у
других методов получения образов ISO
Debian:
Это намного быстрее, чем загружать
файл ISO образа.
В отличие от загрузки файла ISO образа,
можно взять устаревший CD (или
смонтировать устаревший ISO образ) и
загрузить только те файлы,
которые изменились на этом CD (или
образе ISO) и создать новый обновлённый
ISO. Это очень напоминает
использование cvs для обновления
исходного кода.
jigdo-lite работает через wget, который по
умолчанию использует http для загрузки
файлов. В отличие от rsync, http никогда не
блокируется межсетевыми экранами
(кроме тех случаев, где это не
является причиной использования jigdo).
Jigdo очень трепетно относится к полосе
пропускания серверов, предлагающих
образы Debian. Если пользователи
используют jigdo, то сервера смогут
обрабатывать больше запросов
загрузки образов Debian, по сравнению с
другими методами получения.
Несомненно, jigdo является лучшим
методом для получения ISO образов Debian.
Как работает Jigdo (читать не обязательно)
Вам не обязательно читать эту часть,
чтобы использовать jigdo, но это поможет
понять, как работает jigdo. Если вам не
интересны подробности, просто
пролистайте до .
Подготовка ISO для загрузки
CD образ — это файловая система,
обозначаемая как iso9660, но в этом
документе мы будем с уверенностью
говорить о CD образе как о большом файле
(порядка 650МБ), "ISO образе", в котором
содержатся файлы по определённым
смещениям. Например, если CD содержит
файл размером 567 байт с именем README, то в
ISO образе содержимое README файла может
располагаться между 20480000 и 20480567. Мы
можем представить CD образ так:
--------------------------------------------------------
ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx|
--------------------------------------------------------
Области "x" в образе содержат
информацию о каталогах, просто места,
заполненные нулями, имя диска,
загрузочный блок и т.д.
При запуске jigdo-file
передаётся два типа входной
информации: полный CD образ (т.е. нужно,
чтобы ISO был уже сделан) и список
файлов, которые содержатся (или нет) в
образе. Вот визуальное представление
входной информации для jigdo-file:
--------------------------------------------------------
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 |
---------- ---------- ---------- ----------
С помощью магии jigdo-file выясняет какие
из свободных файлов содержатся в ISO
образе и их смещения. В результате
работы создаётся два файла: ".template" и
".jigdo".
Файл .template
Получив на входе ISO образ и список
файлов, которые возможно находятся в ISO
образе, jigdo-file генерирует файл .template для
этого ISO образа. Вот что содержится в
файле .template:
--------------------------------------------------------
.template: |xxxx| md5-0 |xx| md5-1 |xxx|cccccccc|x| md5-3 |xxxx|
--------------------------------------------------------
jigdo-file находит файлы file-0,
file-1 и file-3 в ISO
образе. Он удаляет содержимое этих
файлов и пишет на это место
контрольные суммы md5 (md5-0,
md5-1 и так далее).
Данные, отмеченные символом "x" (информация о каталогах,
место заполненное нулями и тому
подобное) в ISO образе сжимаются и тоже
записываются в файл .template. Наконец,
любые файлы в ISO образе, которые
отсутствуют в списке свободных файлов
(например file-2) также
подвергаются сжатию и записываются в
файл .template. Они показаны символом "c".
Свободные файлы, переданные
jigdo-file и отсутствующие в
ISO образе (например file-4),
игнорируются.
Файл .jigdo
Получив при запуске ISO образ и список
свободных файлов, jigdo-file создаёт файл
.jigdo для этого ISO образа. Файлы .jigdo для
Debian сжимаются программой gzip, поэтому
вам потребуется zcat или zless, чтобы
посмотреть их. Вот так выглядит .jigdo
файл после разжатия:
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 просто описывает
соответствие между контрольной суммой
файла md5 из ISO образа и URL, откуда можно
скачать этот файл. Есть и другие строки
в файле .jigdo, и если вы
полистаете его, то увидите, что формат
.jigdo файла подобен ".ini"
файлам. Это значит, что смысл каждого
параметра заложен в названии. Также же
они подробно описаны в документации к
jigdo.
Формат, показанный выше, не совсем
точно отображает то, что вы увидите в
типичном файле .jigdo, но очень
похоже. Если вы посмотрите в раздел
[Servers] в конце файла .jigdo, вы явно увидите
разницу между тем, что я показал выше и
настоящим .jigdo файлом.
Загрузка образа
После того как вы с помощью
jigdo-file создали файлы
.jigdo и .template для
ISO образа, любой с помощью
jigdo-lite может скачать
этот образ. jigdo-lite загружает все файлы
Debian ISO с помощью wget,
компонует их и на лету формирует копию
оригинального ISO образа.
Загрузка вашего первого образа (5 простых шагов)
Мы предполагаем, что вы начинаете с
самого начала и не имеете никаких Debian
ISO. Как только вы запишите свой набор ISO,
то позже сможете использовать jigdo-lite
для его обновления. Мы опишем как
обновлять ISO в следующем разделе.
Установка Jigdo
Во-первых, установите пакет jigdo-file:
# apt-get install jigdo-file
Jigdo очень быстро
разрабатывается. Исправление ошибок и
улучшения происходят постоянно,
поэтому если вы используете
стабильную или тестовую версии Debian,
возьмите jigdo-file из нестабильной версии
http://packages.debian.org/unstable/utils/jigdo-file.html.
На 28 ноября 2005 года здесь находится
версия 0.7.2-2.
Загрузка файлов .template и .jigdo
Для каждого ISO образа, который вы
хотите загрузить, вам нужно два файла:
.jigdo и .template. Названия файлов
подчиняются одинаковому соглашению:
distro-arch-n.jigdo
distro-arch-n.template
где distro — это название дистрибутива
(например "sarge"), arch — это архитектура
(например, "i386") и n — это номер диска
(например "1").
Например, sarge содержит 8 образов,
поэтому вам нужно 8 .jigdo файлов и 8 .template
файлов. Они могут быть загружены с http://www.debian.org/CD/jigdo-cd/.
Для первого образа файлы .jigdo и .template
называются sarge-i386-1.jigdo и
sarge-i386-1.template
соответственно.
Запуск jigdo-lite
Запустите jigdo-lite и
укажите файл .jigdo для
образа, который хотите
загрузить. Используя Sarge в качестве
примера:
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:
Если вы приостановите
jigdo-lite с помощью controlz
(не делайте этого; я покажу, что
получается) и посмотрите, что выдаётся
по команде ls, то обнаружите в
каталоге новый файл
sarge-i386-1.jigdo.unpacked. Файлы .jigdo
сжаты программой gzip. Этот файл
является распакованной версией файла
.jigdo.
Прямо сейчас, jigdo-lite
говорит нам, что если мы имеем
устаревшую версию первого CD sarge, то
можем задать путь к этому CD. Вот так
обновляются ISO образы (или загружаются
незавершённые). Так как мы
предполагаем, что начинаем с нуля и не
имеем Debian ISO, то сканировать нечего. Мы
опишем это в , так
что просто нажмите ENTER.
Смотрите также .
Указание сервера-зеркала
Сейчас вы видите:
-----------------------------------------------------------------
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/]:
\t
По умолчанию, jigdo-lite
использует сервер-зеркало, указанное в
/etc/apt/sources.list. Если вы хотите
использовать другой сервер-зеркало, то
можете указать его здесь. Если это тот
сервер-зеркало, которое вы хотите
использовать, нажмите
ENTER. Jigdo-lite сохранит эту
настройку в файле ~/.jigdo-lite в
вашем домашнем каталоге.
Затем, если в файле .jigdo есть
ссылка на пакет, который должен быть
загружен с Non-US сервера (сервера,
территориально расположенного не в
США), то jigdo-lite попросит
вас ввести имя сервера-зеркала Debian
Non-US. Показываемое сообщение (и ответ)
будет очень похоже на диалог выбора
сервера-зеркала из предыдущего
параграфа.
-----------------------------------------------------------------
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//]:
\t
Jigdo-lite сохранит ваш выбор в
~/.jigdo-lite. Однако, если образ,
который вы хотите загрузить, не
содержит Non-US программ, то вы не увидите
этот диалог.
Если вы хотите изменить сервер-зеркало
по умолчанию, то в любое время, можете
изменить две строки в файле
~/.jigdo-lite:
debianMirror='http://some-mirror-to-use/debian/'
nonusMirror='http://some-other-mirror/debian-non-US/'
Загрузка ISO
После указания
сервера(ов)-зеркала,
jigdo-lite начнёт загрузку файлов
для сборки ISO образа:
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
По экрану будет пролетать много
сообщений; если вас это смущает, то
смотрите . Пока jigdo-lite
загружает пакеты, переключитесь в
другую консоль (или откройте ещё один
xterm) и запустите ls в каталоге,
где вы запустили jigdo-lite. Теперь в этом
каталоге уже 6 файлов:
sarge-i386-1.iso.list
sarge-i386-1.iso.tmp
jigdo-file-cache.db
sarge-i386-1.iso.tmpdir/
sarge-i386-1.jigdo
sarge-i386-1.jigdo.unpacked
sarge-i386-1.template
Каталог sarge-i386-1.iso.tmpdir/ содержит
все пакеты Debian, уже загруженные
jigdo-lite. С определённой
частотой файлы каталога
переписываются в файл
sarge-i386-1.iso.tmp, который
является неполной версией нужного ISO
образа. Заметим, что файл
sarge-i386-1.iso.tmp не существует
до первой очистки каталога sarge-i386-1.iso.tmpdir/.
jigdo-file-cache.db — это файл
Berekeley DB, содержащий контрольные суммы
md5 всех файлов, прочитанных из
каталога, который вы указали в Files
to scan:. Этот файл описан в .
Сейчас можно сесть поиграть немного в
Quake III, потому что процесс займёт
какое-то время (наверно придётся сесть
играть за другую машину, потому что jigdo
интенсивно работает с диском при
записи сохраняемых файлов в файл
.iso.tmp). В какой-то момент,
загрузка закончится и вы увидите:
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!
\t
Обновление образа
Возможно, вы прочли последний раздел,
следовали инструкциям, записали свои
только что созданные ISO файлы на CD и
чувствуете себя сухо и комфортно. Рано
или поздно, некоторые пакеты будут
обновлены и тогда вы захотите подарить
свои старые CD какому-нибудь новичку из
вашего местного LUG, а себе записать
набор обновлённых CD. Так как вы на
правильном пути к становлению jigdo-гуру,
мы не будем погружаться в мучительные
детали, как мы это делали в последнем
разделе.
Первый шаг — загрузить .jigdo и .template
файлы опять, но тех образов, которые вы
хотите обновить. Вы можете удивиться,
зачем нужно загружать их во второй
раз. Причина проста: обновлённый образ,
который вы хотите загрузить,
изменился. Могли добавиться новые
файлы или что-то удалиться, но даже если
нет, любые обновлённые пакеты или файлы
теперь имеют другую контрольную сумму,
не ту, что записана в файлах .jigdo и .template,
использованных при первой загрузке
образов.
В данный момент вы или держите в руках
устаревшие Debian CD или имеете ISO образы
этих CD на жёстком диске. Пройдём по
шагам через обновление ISO файла. Если вы
имеете CD, вставьте его в CD привод и
смонтируйте:
$ mount /cdrom
Или же, если вы имеете ISO файл, который
вам нужно обновить, смонтируйте его
через устройство обратной связи (loopback)
(для этого вам нужно быть
суперпользователем). Используя Woody, в
качестве примера:
# mount -o loop woody-i386-1.iso /mnt
Теперь запускаем jigdo-lite с
файлом .jigdo в качестве
аргумента.
$ 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:
jigdo-lite спросит о местоположении
смонтированного CD (если вы обновляете
CD) или смонтированного через
устройство обратной связи (loopback) ISO
файла (если вы используете ISO файл). Я
использую ISO файл, смонтированный в
/mnt, поэтому я ввожу
/mnt. Если вы
обновляете CD, введите точку
монтирования вашего CD, которой обычно
является /cdrom. В любом случае,
jigdo-lite просканирует ваш
смонтированный каталог, определит
какие файлы нужно обновить и
использует заново файлы, которые не
требуют обновления. Смотрите также .
Вы увидите что-то типа такого:
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.
Что случилось? На самом деле, я хотел
показать вам этот момент, потому что вы
столкнётесь с этим рано или поздно. Я
обновляю ISO файл, но старый файл образа
находится в том же каталоге, откуда я
запустил обновление. Jigdo-lite хочет
создать файл с именем
woody-i386-1.iso, но файл с таким
именем уже существует в текущем
каталоге (устаревший образ). Jigdo-lite не
хочет уничтожать этот файл, поэтому
останавливается и предлагает мне
вручную удалить этот файл или указать
--force, чтобы она перезаписала
этот файл. Вы можете также
переименовать или переместить файл, но
я полагаю, что jigdo-lite
предполагает, что мы знаем об этом.
:-)
Не стесняйтесь удалить или
переименовать файл образа, если он
смонтирован через устройство обратной
связи (loop mounted). Внутри файловой системы
используются индексные дескрипторы
файлов (inodes), и даже если вы переместите
или переименуете файл, индексный
дескриптор файла останется прежним. Не
беспокойтесь за файловую систему,
смонтированную в /mnt. Удалением ISO файла вы
не испортите смонтированную файловую
систему. Индексный дескриптор файла
будет освобождён, только когда счётчик
ссылок на него станет равным
нулю. Монтирование ISO образа
увеличивает счётчик, поэтому файл
будет удалён по-настоящему, только
после того как вы выполните rm
файл и размонтируете
устройство обратной связи. Все люди,
которые обновляют CD, вообще ни о чём не
волнуются. :-)
Я переименовал ISO файл в
woody-i386-1.iso.old и запускаю
jigdo-lite снова. Давайте
попробуем ещё раз:
$ 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
...
jigdo-lite помнит, что я хотел
просканировать /mnt
и говорит мне, что я могу или ввести
1, чтобы просканировать этот
каталог или задать другой каталог. Так
как я упрямая личность, я ввёл имя
каталога снова.
Многоточием я заменил некоторый текст,
который быстро пролетает по
экрану. Первое многоточие заменяет
динамический список файлов,
сканируемых jigdo-lite. Второе многоточие
означает процесс записи в
woody-i386-1.iso.tmp. После того, как
jigdo-lite закончит сканирование файлов и
запись временного ISO файла, она выводит:
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:
Так как обычно у вас больше нет других
источников файлов для сканирования
кроме смонтированного ISO файла (или CD),
нажмите ENTER. Jigdo-lite затем
попросит вас задать сервера-заркала,
которые вы хотите использовать, точно
также как она это делала, когда вы
загружали ваш ISO в первый раз. Вы уже
отвечали на эти вопросы раньше, но если
вы точно не помните, то можете
перечитать .
С этого момента, вы увидите магию
jigdo-lite. Не правда ли, что
всё оказалось легко?
Часто задаваемые вопросы
Вопросы, которые начинаются с даты,
являются временными (то есть, эта
проблема когда-нибудь исчезнет). Если
вы видите, что ситуация с одним из
временных вопросов изменилась,
пожалуйста, свяжитесь со мной, чтобы я мог
удалить вопрос из mini-HOWTO.
Почему jidgo спрашивает дважды при сканировании существующих файлов?
Почему недостаточно сказать один раз ДА?
Она спрашивает только пока вы вводите
пути сканирования. Смысл в том, что вы
можете захотеть просканировать
несколько старых CD, вставляя их один за
одним и сохраняя путь "D:\"
(или что там у вас). Смотрите также .
У jigdo проблемы с загрузкой файлов с определёнными именами.
При загрузке образов Debian из Windows, с
помощью jigdo-lite могут возникнуть
проблемы загрузки одного или
нескольких следующих файлов:
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
Переместите каталог загрузки jigdo вверх
по иерархии каталогов, ближе к вершине
дерева устройства.
Длина пути в файловой системе NTFS
ограничена 255 символами. Когда jigdo-lite
загружает файлы из Интернет, она
создаёт копию структуры каталогов
сервера в своём каталоге загрузки. В
случае с очень длинными именами
пакетов Debian, показанных выше, это как
раз и происходит, что приводит в
сообщениям типа"Cannot write to `[very long
pathname]' (No such file or directory)".
Некоторые люди теперь удивляются:
Зачем jigdo-lite использует параметра wget "
--force-directories", которые
позволяет создавать эти проблемные
каталоги?
Ранние версии jigdo-lite не использовали
его, но потом некоторые люди попросили,
чтобы jigdo-lite всегда использовала
параметр "--continue" для того,
чтобы избежать игнорирования и
удаления недокачанных .deb файлов при
прерывании и перезапуске jigdo-lite.
К сожалению, это привело к проблемам:
сервера Debian содержат несколько
одинаково названных файлов (например
"root.bin") в разных каталогах, и
если вы прервёте jigdo-lite во время
загрузки такого файла, то есть шанс,
что при докачивании будут добавлены
данные из другого файла и это приведёт
к краху всей загрузки jigdo.
Как заставить jigdo использовать прокси-сервер?
Откройте файл ~/.jigdo-lite (или
jigdo-lite-settings.txt в версии для
Microsoft Windows) в текстовом редакторе и
найдите строку, начинающуюся с
"wgetOpts". К ней можно добавить
следующие параметры (все в одну
строку):
-e ftp_proxy=http://LOCAL-PROXY:PORT/
-e http_proxy=http://LOCAL-PROXY:PORT/
--proxy-user=USER
--proxy-passwd=PASSWORD
Разумеется, нужно подставить
правильные значения вашего
прокси-сервера. Последние два
параметра требуются, только если
прокси использует парольную
аутентификацию. Параметры нужно
добавить в конец строки wgetOpts перед
завершающим символом '. Все
параметры должны быть в одной строке.
В Linux вместо этого, можно также
установить переменные среды
ftp_proxy и http_proxy,
например в файле /etc/environment
или ~/.bashrc.
Jigdo-lite завершилась с ошибкой. Я что, зря загружал все эти мегабайты?
Если работа jigdo-file была
прервана после загрузки значительного
куска содержимого ISO, то у вас
останется большой файл
".iso.tmp". Есть несколько
способов попытаться спасти эти данные:
Перезапустите загрузку, нажав
клавишу RETURN. Может быть,
некоторые файлы не удалось загрузить
из-за задержек или других временных
ошибок. Попробуйте скачать
пропущенные файлы ещё раз.
Используйте другой
сервер-зеркало. Некоторые
сервера-зеркала Debian слегка не
синхронизированы. Может быть, другой
сервер-зеркало всё ещё хранит файлы,
удалённые с того, который вы указали,
или уже получил файлы, ещё
отсутствующие на вашем
сервере-зеркале. Такое у меня
случалось пару раз.
Загрузите недостающие части образа с
помощью rsync. Для начала
вам нужно найти правильный URL rsync
загружаемого образа: выберите сервер,
предоставляющий доступ по rsync к
образам stable
или testing, и
затем определите правильный путь и
имя файла. Списки содержимого
каталогов могут быть получены
командой rsync
rsync://cdimage.debian.org/debian-cd/.
Затем, удалите расширение
".tmp" с временного файла
jigdo-lite простым переименовыванием, и
передайте удалённый URL и имя
локального файла rsync: rsync
rsync://server.org/path/binary-i386-1.iso
binary-i386-1.iso. Вы можете
использовать ключи rsync
--verbose и --progress,
чтобы получать сообщения о состоянии
и --block-size=8192, чтобы
увеличить скорость загрузки.
В Linux вы можете смонтировать файл
.tmp через устройство
обратной связи для доступа к пакетам,
которые уже загружены, и использовать
их для создания образа с более новым
файлом .jigdo. Для этого сначала
выполните от имени
суперпользователя(root) в каталоге с
неудавшейся загрузкой следующую
команду: mkdir mnt; mount -t iso9660 -o loop *.tmp
mnt. Затем запустите загрузку в
другом каталоге и введите путь к
каталогу mnt в приглашении "Files to scan".
В Microsoft Windows вы можете сделать тоже
самое смонтировав временный ISO образ
с помощью программного обеспечения
создающего "виртуальные
диски". Наиболее популярны Daemon tools
и Nero Image Drive. Подробней о
параметрах смотрите http://tinyurl.com/c39zr.
[11 Aug 2002]: Почему нет переводов этого HOWTO в LDP?
У меня возникли проблемы, когда я
предлагал переводы этого HOWTO не
английским редакторам LDP.
Немецкий редактор LDP, Marco Budde
Budde@tu-harburg.de, отказался принять
немецкий перевод, потому что он в
формате Docbook, а не в Linuxdoc, хотя Docbook
более предпочтительный язык SGML для
LDP. Стыдно, что мы имеем людей в
сообществе open source, который подрывают
нас изнутри.
Португальский редактор LDP, Alfredo Carvalho
ajpc@poli.org, полностью
проигнорировал моё предложение
португальского перевода.
Если вам хотелось бы иметь документы
на этих языках в LDP, напишите этим
редакторам и попросите их
ответственней относиться к приёму
переводов. В данный момент, вы можете
загрузить эти переводы с моего личного
веб сайта, http://www.dirac.org/linux/debian/jigdo.
Как вам не стыдно, Marco Budde
Budde@tu-harburg.de.
Как вам не стыдно, Alfredo Carvalho
ajpc@poli.org.
Что делать, если jigdo прервался?
Если ваша загрузка прервалась, всё что
вам нужно, это просто запустить заново
jigdo-lite и нажимать ENTER при
ответе на все вопросы. Jigdo-lite начнёт
оттуда где остановился.
Моя загрузка jigdo не закончилась, потому что файл .jigdo испорчен.
Когда я загружу новый исправленный файл .jigdo, мне придётся загружать всё по-новой?
Может оказаться, что файл .jigdo
испорчен. Это бывает очень редко, но
случается время от времени при смене
тестового или нестабильного выпуска
Debian.
Если вы выяснили, что загруженный файл
.jigdo испорчен, то вам нужно
загрузить новый файл .jigdo (когда
появится исправленная версия), но
загружать все данные ISO снова не
потребуется.
Вы можете использовать тот же трюк с
монтированием через устройство
обратной связи, какой мы проделывали,
когда обновляли образ ISO. Разница в том,
что нет завершённого .iso файла, но файл
.iso.tmp тоже является образом ISO и может
быть использован для завершения
загрузки без перекачки уже
загруженных данных. Просто
смонтируйте файл .iso.tmp через
устройство обратной связи в /mnt, и после перезапуска
jigdo-lite с исправленным файлом .jigdo,
укажите jigdo-lite сканировать /mnt. Не забудьте
переименовать или переместить файл
.iso.tmp, так чтобы не пересечься с jigdo-lite,
когда она захочет создать новый файл
.iso.tmp.
Можно ли использовать jigdo для загрузки образов DVD?
Конечно: процесс идентичен загрузке
образов CD. Вам только нужно загрузить
другие файлы .jigdo и .template для DVD вместо
CD. Вы можете найти DVD файлы .jigdo и .template
здесь http://www.debian.org/CD/jigdo-cd/.
Заметим, что для создания файлов DVD
размера вам нужно ядро версии 2.4 или
более поздней.
Под Windows нужно использовать
jigdo-win-0.7.1a (выпущена 21 июля 2004
года) или более позднюю. Это является
следствием ошибки поддержки больших
файлов в Mingw32, компилятора, который
используется для создания
исполняемого файла под MS Windows. Ошибка
была исправлена и был выпущен
jigdo-win-0.7.1a.
Можно ли записать файл .iso.tmp на CD?
Спасибо Гордону Хаффу(Gordon Huff) и Девиду
Анселми(David Anselmi), теперь мы знаем ответ:
"да, можно". Гордон даже нашёл хорошую
причину для этого. Цитирую Гордона:
Мой друг с Win98 имеет *отличное*
кабельное подключение к Интернету. Я
пришёл к нему утром, запустил jigdo (даже
не одну, на самом деле), и ушёл в
магазин, купил киви, достал
рождественские гирлянды и
рождественскую ёлку, нарядил ёлку,
заказал и разрезал пиццу и зажёг satellite
dish.
Я ушёл от друга с несколькими iso.tmp на
CDRW. Когда я пришёл домой, я закончил
загрузку этих iso через модемное
соединение.
Jigdo-lite не работает! Он загружает несколько пакетов и удаляет их. Я знаю, что он не записал их в файл iso.tmp, его размер не изменился!
Jigdo прекрасно работает — файл
.iso.tmp сразу создаётся со
своим конечным размером и заполняется
нулями. Позже он по частям
перезаписывается скачиваемыми
данными.
Вы можете убедиться, что jigdo работает
по сообщениям "Found X of the Y files required by
the template", которые появляются время
от времени. Первое значение
"X" должно
увеличиваться. Второе значение
"Y" должно уменьшаться. Когда
X станет равным Y,
загрузка завершится.
Jigdo-easy не работает.
Смотрите .
При обновлении образа я хочу, чтобы jigdo-lite просканировал 14
смонтированных образов. Как это сделать?
При обновлении CD образов надоедает
монтировать и размонтировать образы. К
тому же, по умолчанию, ядро Linux
поддерживает только восемь устройств
обратной связи, а в меню ранее
введённых путей jigdo-lite если только пять
строк.
Чтобы просканировать образы, сначала
нужно задать в ядре Linux большее
количество устройств чем восемь. Это
делается передачей параметра
"max_loop" модули при загрузке,
например, "modprobe loop max_loop=16" или
добавлением строки "options loop
max_loop=16" в файл
/etc/modules.conf. В Debian вы должны
записать эту строку в файл с именем,
например /etc/modutils/local-loop и
запустить update-modules, так как
ручные правки /etc/modules.conf
будут стёрты.
После монтирования всех образов, вы
можете передать родительский каталог
всех точек монтирования jigdo-lite для
сканирования. Например, если образы
смонтированы в /mnt/myloopmounts/image1/ и так
далее, укажите "/mnt/myloopmounts" в качестве
пути сканирования. Если общего
каталога нет, то вы можете создать
каталог и заполнить его
символическими ссылками на точки
монтирования.
Jigdo-lite показывает слишком много сообщений. Как заблокировать какую-то часть или все эти сообщения?
Jigdo-lite использует wget, а сообщений от wget
может быть довольно много. Если вам это
не нравится, то можно заставить wget
выдавать меньше сообщений, добавив
--non-verbose в параметр
wgetOpts в файле
~/.jigdo-lite. Если вы хотите,
чтобы wget вообще ничего не выводил,
используйте --quiet в параметре
wgetOpts.
Можно ли использовать jigdo не на Linuх-платформах?
Конечно. Если вы заинтересованы в Potato
или Woody под Microsoft Windows, старом SunOS, HP-UX и
IRIX, вы можете использовать
jigdo-easy. Смотрите и .
Если вы хотите загрузить Potato, Woody, Sarge
или Sid под Microsoft Windows, то jigdo-lite был
перенесён на эту платформу и может
быть загружен с главного сайта jigdo ().
Почему в MS Windows я получаю ошибку "No such file or directory"?
Может случиться, что под MS Windows, jigdo-lite
загружает некоторые файлы, но затем не
может прочесть их содержимое, что и
приводит к сообщению об ошибке "No
such file or directory".
Вероятно, это случается когда длина
имён файлов, которые обрабатывает jigdo
превышает определённую
величину. Решение этой проблемы
состоит в перемещении наполовину
загруженного файла вверх по иерархии
каталогов, ближе к вершине дерева
каталогов устройства.
Почему в MS Windows мои образы не могут быть больше 2ГБ?
Вы используете старую версию
jigdo. Обновитесь до jigdo-win-0.7.1a
или более новой. Подробности здесь .
В MS Windows, jigdo-lite.bat не запускается с ошибкой,
что "sh" не найден.
Это значит, что не сработала команда
PATH в .bat
файле. Почему-то это случается если вы
распаковали jigdo в расшаренную папку
Windows указав путь типа "\\SomeServer\Files\jigdo". Решение:
Используйте команду "Map network
drive" (в меню
обозревателя"инструменты"), чтобы
назначить букву диска типа
"Z:", затем запускайте
.bat файл внутри
"Z:\jigdo". Также, можно
переместить всё из подкаталога jigdo-bin в каталог, где
лежит .bat.
Можно запустить несколько экземпляров jigdo-lite для загрузки образов одновременно?
Конечно. Однако, чтобы избежать
конфликта имён файлов, нужно запускать
каждый экземпляр jigdo-lite
в отдельном каталоге. Вы можете
запустить любое количество
экземпляров какое хотите, ложитесь
спать, а когда вы проснётесь, все ISO
образы будут ждать вас на жёстком
диске. Не забывайте, что
jigdo-lite интенсивно
использует сеть и процессор, поэтому,
наверно, не стоит запускать на
компьютере несколько экземпляров,
если он уже занят другой работой.
Есть ли графический интерфейс?
Ведётся работа над GTK+ интерфейсом для
jigdo. Планируется сделать графических
клиентов для Linux и Microsoft Windows. К
сожалению, за 1.5 года эта работа
выполнена только на 80%, так что скорого
релиза не ожидается.
Некоторые термины
jigdo-easy
Jigdo-easy, написанный Anne Bezemer, основана на
jigdo-lite, и перенесена на
большее количество систем, включая
Microsoft Windows, старые SunOS, HP-UX и IRIX). Также, её
легче использовать, чем jigdo-lite, но из-за
изменений сделанных в Jigdo, она работает
только с Potato и Woody. Jigdo-easy не может
загружать Sarge и Sid. Смотрите и .
Подробней о сканировании источников
Вы знаете, что когда
jigdo-lite спрашивает о
сканировании файлов, вы можете
использовать 3 источника:
Смонтированную копию устаревшего CD
или DVD, который нужно обновить.
Смонтированную через устройство
обратной связи копию файла с
устаревшим ISO образом на жёстком
диске.
Смонтированную через устройство
обратной связи копию временного
файла .iso.tmp, если
предыдущий запуск
jigdo-lite был прерван.
Как сообщил Jens Seidel, есть ещё один, более
хитрый источник, который можно
использовать для сканирования: ваш apt
кэш. Apt использует каталог /var/cache/apt/archives для
кэширования. В этом каталоге будут
помещаться много пакетов Debian, и они
могут быть использованы
jigdo-lite! Поэтому, когда
вас спрашивают о каталоге
сканирования, конечно укажите и этот
каталог.
При редактировании файла
~/.jigdo-lite вручную, убедитесь,
что каталоги сканирования разделены
пробелом, например:
scanMenu='/var/cache/apt/archives/ /cdrom/'
jigdo-file-cache.db
Кэш, содержащий контрольные md5 суммы
файлов, используется в момент, когда вы
указываете каталог в приглашении
Files to scan:. Если jigdo-file
сканирует тот же каталог во второй раз,
сканирование проходит очень быстро.
Он полезен в следующем случае: rev0
обновляется до rev1. С rev1 CD образов,
некоторые пакеты могут переместиться
с CD n на CD n+1 или
наоборот. Если у вас медленный канал
(например модемный), то вы избежите
загрузки этих файлов заново. По этой
причине, при загрузке новой версии CD
n, укажите jigdo-lite сканировать
три CD n-1, n и
n+1 (или даже все 8 CD, если вы
хотите быть на 100% уверены).
Для обновления каждого из 8 образов CD,
jigdo-lite нужно сканировать одни и те же CD
несколько раз, но кэш в этом случае
предотвратит многократное
перечитывание всех данных этих CD.
Кэш намного более важен при
генерации jigdo файлов, так
как вам наверно не понравится, если
jigdo-file будет перечитывать все 50ГБ с
сервера-зеркала Debian для создания
каждого jigdo файла.
Ресурсы
Здесь HOWTO подходит к концу, и я думаю,
что нужно дать несколько ссылок и
рекомендаций, чтобы вы узнали больше
об утилитах jigdo и о том, как они
работают.
http://atterer.net/jigdo
Это домашняя страница jigdo. Вы
определённо должны посетить этот
сайт; много информации о переносе на
другие платформы, графические
клиенты и всё на земле, имеющее
отношение к jigdo.
http://cdimage.debian.org/~costar/jigdo
Страница Debian по jigdo-easy ().
http://www.debian.org/CD/jigdo-cd
Основная страница Debian по jigdo.
http://packages.debian.org/testing/utils/jigdo-file.html
Официальная веб страница jigdo-file
пакета Debian.
http://lists.debian.org/search.html
Вы можете использовать эту страницу
для поиска в архиве списка рассылки
debian-cd.
http://www.debian.org/MailingLists/subscribe
Страница подписки на список рассылки
debian-cd.
https://lists.berlios.de/mailman/listinfo/jigdo-user
Страница подписки на официальный
список рассылки jigdo.