Целью является создание структур apt-индексов на дистрибутивном диске SuSE Linux. После такой перестройки диском можно пользоваться как источником обновлений через apt-клиента.
Поскольку дистрибутивный диск представляет собой носитель, доступный только по чтению, то для модификации его надо буквально пересобрать заново. Для этого придется сначала скопировать содержимое диска во временную рабочую директорию на локальном диске. Произвести построение индексов пакетов. И создать имидж дистрибутивного диска заново. Такие построения потребуют резервирования рабочего пространства на локальной файловой системе.
Далее предположим, что все действия производятся в отношении дистрибутивного dvd от SuSE Linux 9.1. Размер исходного диска почти 4G. Соответственно для работы понадобиться 8G суммарного свободного пространства, 4G для рабочей директории и 4G для имиджа с результатом, в том случае, если в качестве исходного диска будет использован dvd, а не его заранее скопированный имидж. Если же предполагается подобную сборку выполнять неоднократно, например, производя всякого рода попутные модификации, то предварительное копирование диска в образ сильно ускорит процесс пересборки, но потребует для своего размещения дополнительно еще 4G, т.е. уже всего 12G.
# wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/lua-5.0.2-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/apt-libs-0.5.15cnc6-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/apt-0.5.15cnc6-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/perl-XML-LibXML-Common-0.12-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/perl-XML-NamespaceSupport-1.08-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/perl-XML-SAX-0.12-rb2.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/gdome2-0.7.4-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/perl-XML-GDOME-0.82-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/perl-XML-LibXML-1.56-rb1.i586.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/apt4rpm-0.67-0.noarch.rpm # wget ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/9.0/apt-server-0.5.15cnc6-rb1.i586.rpm
Если указанным источником воспользоваться не удается, то можно поискать новый через RPM Search.
Если загрузка производилась в выделенную директорию и есть уверенность, что там более нет других rpm, то установить все пакеты можно одной командой :
# rpm -ivh *.rpm
В противном случае устанавливать надо поочередно в порядке загрузки или указать все пакеты в одной командной строке.
Поскольку скрипт пересборки использует собственный конфигурационный файл, то никакой дополнительной настройки сервера apt не потребуется.
Программа, выполняющая параметрическую пересборку дистрибутивных дисков, сложна в работе и во многом несовершенна. Энтузиасты могут разобраться самостоятельно. Здесь же для указанного конкретного дистрибутивного диска воспользуемся dryrun прогоном одной из версий этой программы, т.е. готовым компилянтом.
В начале скрипта расположена секция параметров. Их надо будет скорректировать согласно требованиям рабочей среды.
Переменная WTMP используется далее как имя временной директории, в которую будет скопировано содержимое дистрибутивного диска для построения индексов apt. При настройке этой переменной следует помнить, что объем размещенных данных предположительно близок к 4G, и после создания имиджа скрипт уничтожает эту директорию.
Здесь надо указать устройство, соответствующее приводу dvd, в котором размещен оригинальный дистрибутивный диск. Если используется заранее скопированный образ диска, то рассматриваемую переменную надо проинициализировать примерно так :
OSRC="-o loop /originaliso/s91.iso"
В переменной TIOS следует указать место размещения и название создаваемого образа диска с apt-репозиторием. Здесь тоже не следует забывать об объеме такого iso-имиджа, в рассматриваемом случае 4G.
Модифицированный скрипт запускается на выполнение с теми правами, которые позволяют выполнять монтирование нужных устройств и писать в рабочие директории.
После копирования содержимого дистрибутивного диска и перед запуском построителя apt-репозитория скрипт возьмет паузу в работе и предложит подтвердить продолжение нажатием Enter на клавиатуре. Можно использовать такую паузу для того, чтобы произвести дополнительные действия с содержимым дистрибутивного диска. Например, можно обновить версии исходных пакетов, доложить дополнительные пакеты, или даже разместить там собственную директорию с rpm, что позволит далее, после соответствующей модификации создаваемого aptate.conf - нужно будет добавить описания для новых компонентов или дистрибуций - сделать доступными эти rpm в dvd-репозитории через apt.
В последней фазе, после нажатия Enter, происходит построение индексов пакетов, найденных в корневой директории создаваемого iso, согласно конфигурации apt-репозитория, записанной в apt/aptate.conf, и, наконец, генерация полученного имиджа нового диска. Все парметры mkisofs взяты с конкретного диска SuSE Linux. Их можно модифицировать по усмотрению.
Полученный в результате работы скрипта имидж диска записывается на носитель и используется как обычный установочный диск, так и в качестве apt-диска.
Вопросы записи полученного образа на dvd носитель не входят в перечень проблем, рассматриваемых в этом очень кратком руководстве.