Copyright © 2001 Peter Jay Salzman
2005-12-05 версия 1.8
Аннотация
Загрузка ISO образов Debian всегда была тяжёлым, медленным и предельно не эффективным процессом. Jigdo — это инструмент для получения ISO образов Debian лёгким, быстрым и очень эффективным способом.В этом HOWTO объясняется, почему вы должны использовать jigdo, как это работает, как получать и обновлять ISO образы Debian.
Jigdo не писалась специально для Debian. Утилиты jigdo можно применить к любому ISO и его загрузка станет такой же лёгкой, быстрой и эффективной как ISO Debian. В этом HOWTO будет рассказано как это делается, но главным образом, мы сфокусируемся на загрузке ISO образов Debian.
Авторские права на этот документ
принадлежат (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.
Для получения набора 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.
Есть зеркала, предлагающие загрузить 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 (от "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. Если вам не интересны подробности, просто пролистайте до Разд. 4>.
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".
Получив на входе 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), игнорируются.
Получив при запуске 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 образа.
Мы предполагаем, что вы начинаете с самого начала и не имеете никаких Debian ISO. Как только вы запишите свой набор ISO, то позже сможете использовать jigdo-lite для его обновления. Мы опишем как обновлять ISO в следующем разделе.
Во-первых, установите пакет 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.
Для каждого 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 для образа, который хотите загрузить. Используя 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 с помощью control+z (не делайте этого; я покажу, что получается) и посмотрите, что выдаётся по команде ls, то обнаружите в каталоге новый файл sarge-i386-1.jigdo.unpacked. Файлы .jigdo сжаты программой gzip. Этот файл является распакованной версией файла .jigdo.
Прямо сейчас, jigdo-lite говорит нам, что если мы имеем устаревшую версию первого CD sarge, то можем задать путь к этому CD. Вот так обновляются ISO образы (или загружаются незавершённые). Так как мы предполагаем, что начинаем с нуля и не имеем Debian ISO, то сканировать нечего. Мы опишем это в Разд. 5>, так что просто нажмите ENTER.
Смотрите также Разд. 7.2.
Сейчас вы видите:
----------------------------------------------------------------- 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/' |
После указания сервера(ов)-зеркала, 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 |
По экрану будет пролетать много сообщений; если вас это смущает, то смотрите Разд. 6.13>. Пока 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:. Этот файл описан в Разд. 7.3>.
Сейчас можно сесть поиграть немного в 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 просканирует ваш смонтированный каталог, определит какие файлы нужно обновить и использует заново файлы, которые не требуют обновления. Смотрите также Разд. 7.2.
Вы увидите что-то типа такого:
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 в первый раз. Вы уже отвечали на эти вопросы раньше, но если вы точно не помните, то можете перечитать Разд. 4.4>.
С этого момента, вы увидите магию jigdo-lite. Не правда ли, что всё оказалось легко?
Вопросы, которые начинаются с даты, являются временными (то есть, эта проблема когда-нибудь исчезнет). Если вы видите, что ситуация с одним из временных вопросов изменилась, пожалуйста, свяжитесь со мной, чтобы я мог удалить вопрос из mini-HOWTO.
Она спрашивает только пока вы вводите пути сканирования. Смысл в том, что вы можете захотеть просканировать несколько старых CD, вставляя их один за одним и сохраняя путь "D:\" (или что там у вас). Смотрите также Разд. 7.2.
При загрузке образов 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-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-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.
У меня возникли проблемы, когда я предлагал переводы этого 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-lite и нажимать ENTER при ответе на все вопросы. Jigdo-lite начнёт оттуда где остановился.
Может оказаться, что файл .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.
Конечно: процесс идентичен загрузке образов 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.
Спасибо Гордону Хаффу(Gordon Huff) и Девиду Анселми(David Anselmi), теперь мы знаем ответ: "да, можно". Гордон даже нашёл хорошую причину для этого. Цитирую Гордона:
Мой друг с Win98 имеет *отличное* кабельное подключение к Интернету. Я пришёл к нему утром, запустил jigdo (даже не одну, на самом деле), и ушёл в магазин, купил киви, достал рождественские гирлянды и рождественскую ёлку, нарядил ёлку, заказал и разрезал пиццу и зажёг satellite dish.
Я ушёл от друга с несколькими iso.tmp на CDRW. Когда я пришёл домой, я закончил загрузку этих iso через модемное соединение.
Jigdo прекрасно работает — файл .iso.tmp сразу создаётся со своим конечным размером и заполняется нулями. Позже он по частям перезаписывается скачиваемыми данными.
Вы можете убедиться, что jigdo работает по сообщениям "Found X of the Y files required by the template", которые появляются время от времени. Первое значение "X" должно увеличиваться. Второе значение "Y" должно уменьшаться. Когда X станет равным Y, загрузка завершится.
При обновлении 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 использует wget, а сообщений от wget может быть довольно много. Если вам это не нравится, то можно заставить wget выдавать меньше сообщений, добавив --non-verbose в параметр wgetOpts в файле ~/.jigdo-lite. Если вы хотите, чтобы wget вообще ничего не выводил, используйте --quiet в параметре wgetOpts.
Конечно. Если вы заинтересованы в Potato или Woody под Microsoft Windows, старом SunOS, HP-UX и IRIX, вы можете использовать jigdo-easy. Смотрите Разд. 7.1> и Разд. 7.4>.
Если вы хотите загрузить Potato, Woody, Sarge или Sid под Microsoft Windows, то jigdo-lite был перенесён на эту платформу и может быть загружен с главного сайта jigdo (Разд. 7.4>).
Может случиться, что под MS Windows, jigdo-lite загружает некоторые файлы, но затем не может прочесть их содержимое, что и приводит к сообщению об ошибке "No such file or directory".
Вероятно, это случается когда длина имён файлов, которые обрабатывает jigdo превышает определённую величину. Решение этой проблемы состоит в перемещении наполовину загруженного файла вверх по иерархии каталогов, ближе к вершине дерева каталогов устройства.
Вы используете старую версию jigdo. Обновитесь до jigdo-win-0.7.1a или более новой. Подробности здесь Разд. 6.8>.
Это значит, что не сработала команда PATH в .bat файле. Почему-то это случается если вы распаковали jigdo в расшаренную папку Windows указав путь типа "\\SomeServer\Files\jigdo". Решение: Используйте команду "Map network drive" (в меню обозревателя"инструменты"), чтобы назначить букву диска типа "Z:", затем запускайте .bat файл внутри "Z:\jigdo". Также, можно переместить всё из подкаталога jigdo-bin в каталог, где лежит .bat.
Конечно. Однако, чтобы избежать конфликта имён файлов, нужно запускать каждый экземпляр jigdo-lite в отдельном каталоге. Вы можете запустить любое количество экземпляров какое хотите, ложитесь спать, а когда вы проснётесь, все ISO образы будут ждать вас на жёстком диске. Не забывайте, что jigdo-lite интенсивно использует сеть и процессор, поэтому, наверно, не стоит запускать на компьютере несколько экземпляров, если он уже занят другой работой.
Ведётся работа над GTK+ интерфейсом для jigdo. Планируется сделать графических клиентов для Linux и Microsoft Windows. К сожалению, за 1.5 года эта работа выполнена только на 80%, так что скорого релиза не ожидается.
Jigdo-easy, написанный Anne Bezemer, основана на jigdo-lite, и перенесена на большее количество систем, включая Microsoft Windows, старые SunOS, HP-UX и IRIX). Также, её легче использовать, чем jigdo-lite, но из-за изменений сделанных в Jigdo, она работает только с Potato и Woody. Jigdo-easy не может загружать Sarge и Sid. Смотрите Разд. 7.4> и Разд. 6.14>.
Вы знаете, что когда 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/' |
Кэш, содержащий контрольные 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 и о том, как они работают.
Это домашняя страница jigdo. Вы определённо должны посетить этот сайт; много информации о переносе на другие платформы, графические клиенты и всё на земле, имеющее отношение к jigdo.
Страница Debian по jigdo-easy (Разд. 7.1>).
Основная страница Debian по jigdo.
Официальная веб страница jigdo-file пакета Debian.
Вы можете использовать эту страницу для поиска в архиве списка рассылки debian-cd.
Страница подписки на список рассылки debian-cd.
Страница подписки на официальный список рассылки jigdo.