Как получить Debian: примеры для rsync

  Автор: © Bill Bennet [Билл Беннет]
Перевод: © Сергей Скороходов.


  Руководство, прилагаемое к Вашему компьютеру, не всегда содержит инструкции, рассказывающие, как получить свободную операционную систему. [Это упущение! Ред.] Debian GNU/Linux -- это операционная система, которую можно бесплатно получить из Сети. Файлы с образами Debian CD (".iso" или ".row" файлы) можно бесплатно скачать из Интернета. Из такого".iso"-файла можно сделать загрузочный CD-ROM. Для того, чтобы сделать это нужно воспользоваться программами ftp и rsync.

Когда Вы посылаете письмо с вопросом, как получить образ Debian CD в список рассылки, то можете попасть в загруженный рабочий день. Из-за загруженности дня Вам, возможно, придется испытать разочарование, т.к. в ответ может прийти "скоростной ответ-отписка". В таком "скоростном ответе" Вас попросят прочесть страницу на cdimage.debian.org. Такая рекомендация может Вас озадачить. С одной стороны, новичкам всегда рады: однако, если присущая Open Source свобода слова и исходников Вам в диковинку, то в затруднении Вы можете оказаться особенно легко.

Иногда в "скоростном ответе" Вам зададут вопрос: "Рассказать, как это сделать?". Потенциальным новым дебианистам в глубинах сети: учитесь читать между строк. Вам предлагают подсказку. Отвечайте "да", друзья мои. Итак, все "пацаны", которые хотят знать простые и ясные команды, слушайте старину Хэнка. Вот как добывают Debian с помощью rsync:

rsync -rv trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /прямо/сюда
Чтобы не забивать канал сервера trumpetti, вместо него воспользуйтесь зеркалом поближе к Вам. Список зеркал находится на http://cdimage.debian.org/rsync-mirrors.html.

Хотите побыстрее?

Изготовить диски Debian можно просто "влет", если воспользоваться pseudo-image kit от costar. Последовательность действий такова:

  1. *Получите список файлов для нужного Вам набора CD;
  2. *Возьмите на заметку быстрый ftp-сервер или даже локальное зеркало Debian;
  3. *Скормите список pseudo-image kit'у для того, чтобы сделать файл псевдо-имиджа [pseudo-image file];
  4. *Смените имя файла pseudo-image file на имя официального образа CD (в соответствии со списком)
  5. *С помощью rsync изготовьте точную копию официального CD
  6. *Проверьте получившийся CD с помощью md5sum
  1. Получение списка для нужного Вам CD
    rsync -av trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.list /прямо/сюда
    
    http://cdimage.debian.org/cd-images/2.2_rev3/i386/binary-i386-1_NONUS.list
    
  2. Возьмите на заметку быстрый ftp-сервер или локальное зеркало Debian.

    Вы можете сделать зеркало архива Debian у себя дома. Когда Вам захочется предоставить pseudo-image kit'у доступ к нему, Вы указываете путь к зеркалу и также указываете созданную директорию "debian", в которой на готове должна быть поддиректория "dists".

    /mnt/mirror/debian
    
    ftp://ftp.us.debian.org/debian
    
  3. Скормите список pseudo-image kit'у для того, чтобы сделать псевдо-имидж файл
    ./make-pseudo-image binary-i386-1_NONUS.list /mnt/mirror/debian
    --или--
    sh make-pseudo-image binary-i386-1_NONUS.list ftp://ftp.us.debian.org/debian
    **
    

    **В директории mirror должна быть поддиректория dists.

  4. Смените имя файла pseudo-image file на имя официального образа CD image (в соответствии со списком)
    mv pseudo-image binary-i386-1_NONUS.iso
    
  5. С помощью rsync приведите созданную копию в соответствие со свежей версией официального CD
    rsync -av trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /прямо/сюда
    
  6. Проверьте получившийся CD с помощью md5sum

    Иногда попадаются покалеченные файлы MD5SUMS, от которых никакого толка. Например, такие:

    MD5 (my-fine-new-iso-file.iso) = 9ce8f9fd8f5f1f47efe3eb77d5aae96b

    В них есть имя файла и контрольная сумма, но команду "md5sum -c" с такими файлами использовать не получается. Вот как это должно выглядеть:

    9ce8f9fd8f5f1f47efe3eb77d5aae96b my-fine-new-iso-file.iso

    Между контрольной суммой и именем файла должны быть один-два пробела. Не ставьте третий пробел -- в этом случае пробел станет частью имени файла.

    
    md5sum -c MD5SUMS
    
    

И зачем мне все это?

Чтобы побыстрее. Например, прямо сегодня вечером.

Загрузка с одного из немногих сайтов с CD-образами в день релиза -- это много-много часов и, вероятно, незаконченная из-за обрыва связи передача.

Загрузка в день релиза с одного из множества зеркал с набором пакетав Debian: намного меньше часов и намного менее вероятный обрыв связи.

Сам образ Вашего CD будет при помощи ftp или прямо с локального зеркала. Вместо блуждания по просторам ftp, Вы берете список и подхватываете только те файлы, которые нужны для того, чтобы сделать свежий CD. Умно.

Обновление существующего CD

Для того, чтобы обновить содержимое образа CD, rsync'у нужно, чтобы имена файлов в образе и на диске совпадали.

Скажем, Вы сделали образ CD с помощью dd.

dd if=/dev/cdrom of=/здесь/лежит/мой_диск.iso

Сохраните этот образ в удобное место и обновите содержимое с помощью rsync.

Для этого Вам надо знать, как называется соответствующий файл-образ CD на rsync-сервере .

Потом этому новому iso можно дать другое, правильное имя.

Поиск имен файлов

Чтобы узнать имена файлов:

Найдите rsync-сервер.

rsync -avn the.server.goes.here::

и составляющие его модули появятся, как по волшебству.

пример:

rsync -avn ftp.fifi.org::

Вы увидите модули под названием debian или debian-cd и сможете заключить, что в debian-cd как раз и содержится то, что Вам нужно.

А теперь из модуля с образами дисков надо достать список файлов. Команды

rsync -avn the.server.goes.here::cdimages/

rsync -avn ftp.fifi.org::debian-cd/

покажут каждую составляющую указанного модуля. Станет очевидным то, какое имя нужно дать Вашему iso-образу и в какую директорию его следует поместить.

Берешь шифрование -- получаешь безопасность

Вам, естественно, требуется "не-американская" версия, потому что в ней будут утилиты безопасности и шифрования -- pgp. Т.к. Вы не собираетесь продовать диски в Соединенных Штатах "ненадежным" элементам -- можете смело отправляться за такими образами. Вот как найти "не-американские" [non-US] файлы:

rsync -rvn the.server.goes.here::cdimages/ | less

rsync -rvn trumpetti.atm.tut.fi::debian-cd/ | less

rsync получает список и посылает его less для форматирования.

За долгое время загрузки огромного списка less будет показывать пустую страницу, поэтому можно сохранить ее в файле:


rsync -avn the.server.goes.here::cdimages/ | less -o my-list-file

rsync -avn ftp.fifi.org::debian-cd/ > my-list-file

пример:

Лист, случайно оказавшийся "ну очень большим":

rsync -avn ftp.fifi.org::debian/ > мой-список-обновлений

Если Вы решите получить с Debian'овского зеркала полный лист пакетов, то он займет 7 мегабайт. Без базара. Debian -- это целая вселенная, наполненая программами.

На сайте fifi есть модуль под название debian, и если Вы попытаетесь получить список находящихся в нем файлов, его размер и вправду окажется не маленьким.

Приведение имени образа CD в соответствие

Чтобы rsync провел обновление, оба файла должны иметь одинаковые имена.

mv mynewfile.iso /right/here/potato-i386-1_NONUS.iso

пример:

Когда длинная команда "переваливает" за размеры строки, ее можно "подсократить" с помощью обратной косой черты и перевода строки.

rsync -rv --block-size 8192 the.server.goes.here::cdimages/2.2_rev3/i386/potato-i386-1_NONUS.iso /mnt/вот/сюда/его/и/кинь

Между "iso" и "/mnt" -- пробел.

rsync -rv --block-size 8192 \
the.server.goes.here::cdimages/2.2_rev3/i386/pot\
ato-i386-1_NONUS.iso /mnt/вот/сюда/его/и/кинь

Вот так, с помощью "бэкслаша" команда нарубается на куски удобной длины.

Хочешь обновиться -- выполняй rsync


rsync -rv trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /right/here

Приведенная команда поместит "наисвежайший" файл potato-i386-1_NONUS.iso в директорию /right/here/ на Вашем жестком диске.

Передаваться будут только отличающиеся части файла. Вы сохраните значительную часть полосы пропускания -- качать придется намного меньше.

Главное в обновлении -- ничего не забыть

  1. Файл с образом диска на Вашем компьтере называется так же, как тот, который Вам нужен.
  2. Вы просите rsync синхронизировать тот, "удаленный" файл с файлом на Вашем жестком диске.
  3. rsync сначала создает "теневой" файл в своей временно директории. А потом заменяет им локальный файл.

Изготовление образа на 670 MB требует 670 MB на диске!

При обнавлении к этим 670 MB добавляются уже имеющийся на диске файл старого образа.


rsync -av --timeout 999999 --block-size 8192 the.server.goes.here::cdimages/2.2_rev3/i386/potato-i386-1_NONUS.iso /вот/сюда

rsync -av --timeout 999999 --block-size 8192 \
the.server.goes.here::cdimages/2.2_rev3/i386/po\
tato-i386-1_NONUS.iso /вот/сюда

Между "iso" и "/вот" -- пробел.

Место заканчивается, нужна temp dir

Если на рабочем разделе места не хватает, то временную директорию можно добавить параметром -T. Вам нужно место для огромного "теневого" файла такого же размера, как и образ нужного Вам CD-ROM'а.

type
df
to see your space

rsync -av --timeout 999999 --block-size 8192 -T /моя/временная/директория \
the.server.goes.here::cdimages/2.2_rev3/i386/pota\ 
to-i386-1_NONUS.iso /вот/сюда

Осторожно:

Вы можете устроить себе маленькую катастрофку:


rsync -av the.server.goes.here::cdimages

попытается завалить Вас содержимым всех имеющихся сидюков!

В конце должен быть символ /.

Опция "-n" делает "сухой прогон" [--dry-run] и показывает, что будет сделано. ("Скажи, что мы уже сделали.")

rsync -avn the.server.goes.here::cdimages/

просто выведет список.

пример из жизни:


rsync -av trumpetti.atm.tut.fi::debian-cd

эта маленькая команда забъет Вам на диск 16 гигов всякого Debian'овского добра для всех мыслимых архитектур. Не скучайте, Вам будет, чем занять себя!


rsync -av trumpetti.atm.tut.fi::debian-cd/ | less

покажет большой список. Вполне возможно, что опция "-n" гораздо безопаснее, если Вам нужен только поискать файлы.

Сегодня у нас большой апдейтец

rsync -av --timeout 999999 --block-size 8192 -T /my/temp/dir \
trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/potato-i386-1_NONUS.iso \
/mnt/вот/сюда/его/и/кинь

загружает образы дисков в /mnt/вот/сюда/его/и/кинь.

Этих примеров нет в руководстве.

rsync всегда готов

Можно делать резервную копию, для получения списка можно запускать команды на удаленной стороне, можно включать файлы, можно исключать файлы, можно менять временную директорию и т.д. Это классная программа копирования, а по сети передается только разница между файлами с одинаковыми именами.

Имена локальных и удаленных файлов должны совпадать. rsync элегантно "зеркалит", но, если все время появляются новые файлы, то проще использовать ftp.

Вот упражнение для новичков:

  1. Для начала освойтесь с работой за клавиатурой. Разомните как следует и многократно каждый палец. Теперь начнем упражнение. В консоли или в окне xterm пожалуйста напечатайте две буквы: df и нажмите Ввод.
  2. Затем заметьте, как много свободного пространства будет найдено. Каждый блок насчитывает 1024 байта. Вывод df "356784" означает, что имеется триста пятьдесят шесть мегабайт плюс еще семьсот восемьдесят четыре блока по 1024 байта (356784*1024 байта). Не хватает 357 мегов.
  3. Если у Вас уже есть файл образа в 670 MB и еще 670 MB для временного "теневого" файла rsync, то можете смело обновлять CD rsync'ом.

Многие из вас будут качать rsync'ом свой первый образ диска. Сделайте одолжение, сохраните его. Позже его можно будет просто обновить до последеней версии через тот же rsync.

Используйте rsync для обновления и резервного копирования сайтов

Сейчас я хочу наехать на всех и каждого. Вы, ребята, попросту транжирите пропускную способность сети. Вы обычно только слегка подновляете свой веб-сайт? Тогда сделайте его локальное зеркало rsync'ом. Нужно добавить по 50 "кил" скриптов во все страницы и во все места? Не меняйте имен файлов и "зеркальте" rsync'ом. Всегда на переднем крае и качаете каждый новый iso-файл? Переименуйте его и обновляйте rsync'ом при выходе новой версии. Понятно, о чем я?

rsync не занимет полосу попусту

Когда Вы пробуете получить образ Debian CD, в память грузится огромный список, и именно это и занимает столько времени. Ничего не зависло. Подождите. Имейте терпение. Я процитирую мистера Мияги из Karate Kid: "Приливы приходят. Приливы уходят". Каждый из многих файлов открывается для проверки контрольной суммы и выяснения вопроса, нужно ли его передавать. Ждите.

Получите файл md5sum.txt. Когда он окажется в Вашей директории после выполнения rsync, наберите на клавиатуре:

md5sum -c md5sum.txt

и верность полученного файла будет проверена.

costar's pseudo-image kit

Pseudo-image kit можно качать отсюда.

Получите нужный для pseudo-image kit'а список.

rsync -rv --timeout 999999 --block-size 8192 -T /my/temp/dir \
trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.list \
/mnt/вот/сюда/это/и /положи

помещает файл списка в /mnt/вот/сюда/это/и /положи. Он называется binary-i386-1_NONUS.list.

Этот binary-i386-1_NONUS.list будет использоваться для создания образа CD диска. Если у Вас есть частичное зеркало Debian (чего там, каких-нибудь 14 гигабайт), то pseudo-image kit сделает Вам CD из локального зеркала. Это чертовски быстрее, чем любые ухищрения. Должен признать, что диски нынче становяться дешевле овса, и нам всем пора закупить весь запас работоспособных дисков. Вы можете быть не в курсе, что делается для того, чтобы изолировать Вас, но времена свободы "благонамеренного использования" кончаются.

А почему не ftp?

И действительно, почему бы не придавить Ваш ftp-сервер многочасовой перекачкой 670 с лишком мегов?

Цитирую письмо мастера ясного кода Беземера [J.A. Bezemer] по поводу debian-cd:

"
> Большинство получит все с жесткого диска гораздо быстрей
> чем по сети.  Pseudo-image kit заканчивает за несколько минут
> вместо нескольких часов на "быстрых" каналах.

Это одна сторона вопроса; Другая -- у нас всего несколько зеркал с образами
дисков и примерно 250 зеркал с пакетами, так что Kit делает важное дело
по распределению пропускной способности между зеркалами. Не забывайте, что 
каждый бит, истекающий с одного из зеркал Debian кем-то оплачен, и что те, 
кто вкладывается в большие диски для хранения образов будет меньше платить
за подключение.

"
Нечего добавить.
Лупить по клавише одним и тем же пальцем, пока не заболит.
Читать -- значит смотреть на каждое слово и понимать его смысл. А не смотреть на удобную ссылку, которую дал вам дядя, а чуть что -- бросать весла. Заглавные Буквы -- неспроста. Знаки препинания -- неспроста. Скверный стиль может запутать, так что с юмором указывайте на чужие ошибки и мы все устроим настоящую свалку, пытаясь послать ответ. Это фантастический мир. Берите от него лучшее.
Из X window в виртуальную консоль попадают нажав Ctrl+Alt+F2. Легко с головой уйти в удивительное занятие: изучение Linux без Иксов. Можно даже установиться без графического интерфейса пользователя. Linux из современных дистрибутивов можно даже использовать в 16 Мб памяти. Но не Mandrake -- этот будет ругаться, пока ему не дадут 64 мега и Pentium.
Частичное зеркало можно сделать с помощью одного из скриптов, сделанного Debian'ами. Их смысл в использовании rsync и ftp для уменьшения размера архива, удовлетворяющего Ваши личные потребности. Идея заключается в точном соответствии архитектуры Вашей машины.
Следующим усовершенствованием дисковых накопителей будет диск, "защищенный от копирования на него". Вы уже не сможете пользоваться всем. что есть в мире. Свобода теряется поэтапно. На определенном этапе придется восстать или стать нарушителем.

Материалы на музыкальном CD естественно защищены законными правами и разрешениями. Генно-инженерная мутация Napser'а показывает нам, что дело идет к тому, чтобы запереть все и вся. Новым жестким дискам и другим устройствам хранения информации грозит защита от копирования. Можно пользоваться программами, но это должны быть программы, получившие официальное одобрение. Правда мило? Скажем так: Да не скопируй...


Цитируя ответ мастера ясного кода Беземера [J. A. Bezemer] из обсуждения debian-cd:
"Использование --partial убьет Ваш бесценный pseudo-image, если rsync слетит после 1
переданного байта. Так что либо делайте бэкап Вашего pseudo-image'а, либо НЕ 
пользуйтесь --partial."
Расхотелось сделать "partial"?

Ссылки для самостоятельного чтения:

rsync.samba.org -- страница rsync и его Faq-O-Matic

NSBD -- Не-Такой-Уж-Плохой-Дистрибутив [Not-So-Bad-Distribution] у Bell Labs использует rsync, чтобы "безопасно обновить" Вас

rsync resources -- Многократная установка и обновление с помощью rsync

rsync resources -- Создание анонимных rsync-серверов

Help File for Captives -- если Вы ищете свободу



набрано в mcedit на 486 машине с GNU/Linux 2.0.35

В процессе тестирования этих рекомендация не было сбоев и зависаний. Мы склонны винить в этом программное обеспечение GNU/Linux.

Билл Беннет [Bill Bennet]

Билл, Парень-Помогающий-с-Компьтерами [ComputerHelperGuy], живет в Селкирке (Манитоба, Канада) -- североамериканской (если не мировой) столице сомов-кошек [catfish]. В Интернете его можно найти на www.chguy.net. Он рассказывает: "На PC я работаю с 1983, когда я начал трудовую жизнь управляющим Radio Shack. После пяти лет на переднем крае я начал свой бизнес. Находясь в разводе с реальностью, я живу рядом со своим компьютером и Linux, продавая дистрибутивы и предоставляя поддержку всех главных сортов Linux. Я был бета-тестером PC-версии Playmaker Football и играю в 'pentium-required' игрушки на четверке. Я хочу помочь Linux'у обрести успех в мире компьютерных игр, так как именно так Linux сможет заменить DOS на настольных системах". Трудно поверить, что единственная пользой от пяти лет, проведенных в университете, оказалось развитие писательских навыков.

 


Copyright © 2001, Bill Bennet.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 67 of Linux Gazette, June 2001

Вернуться на главную страницу