Как создать свой RPM-репозиторий (например, собрать пакеты со всех дисков
дистрибутива на винчестер и не играть в CD-ченжер)?
Свой репозитарий - это отличный способ собрать все свои рпмки и их исходники в
одно место и сделать процесс их поиска и установки несложным, приятным и удобным
делом для вас и всех, кому вы позволите этим репозитарием воспользоваться.
С репозитарием может работать apt-get, apt-cache и apt-cdrom.
Создание своего репозитария состоит из трех пунктов
1. создаем стандартную структуру каталогов и линков
2. записывваем *.rpm в папку RPMS, а *.src.rpm в SRPMS
3. запускаем genbasedir
После этого остается только залить получившийса репозитарий на сдром или на ftp
или просто положить его на постоянное место и либо добавить этот сдром командой
apt-cdrom add или отредактировать /stc/apt/sources.list и сделать apt-get update
и пользоваться в свое удовольствие.
myrep в листинге - ваше слово - название репозитария.
эту структуру (для репозитария "sisyphus") я зажал в tar и выложил сюда.
просто положите его в директорию с будущим репозитарием и дайте команду $tar -xf
rep.tar.
2. Заливаем РПМки
Просто копируем *.rpm в ./i586/RPMS, а *.src.rpm в ./SRPMS.
Нет нужды следить за соответствием пакетов src.rpm и их бинврных версий. Не
обязательно заливать сразу и бинарники и исходники - можно что то одно. Просто
папка ./i586/RPMS или ./SRPMS. останется пустой. АПТ работает со всей базой
репозитариев в целом и его не будет заботить то, что в конкретном репозитарии
чего то не хватает по отношению к самому себе. Главное, чтобы хоть в каком то
репозитарии нашлось подходящее.
3 genbasedir обрабатываем репозитарий.
Когда репозитарий заполнен, надо создать служебные файлы-индексы для работы
АПТа. эти файлы лежат в папке ./i586/base и создаются утилитой genbasedir.
$genbasedir --topdir=/home/avl/rep i586 myrep
--topdir=/home/avl/rep - опция указывающая абсолютный путь к вершине нашего
репозитария.
i586 - архитектура под которую строить индексы (если вам нужна другая
архитектура - не забудте изменить структуру репозитария)
myrep - название репозитария (аналогично, при изменении см. в структуру репозитария)
[avl@avl rep]$ genbasedir --topdir=/home/avl/rep i586 myrep
myrep: pkglist done
myrep: srclist done
myrep: hashfile done
All your base are belong to us !!
если вы не заливали бинарники или исходники - все равно индекс для них будет
создан (нулевой индекс). это не ошибка и прекрасно будет работать, но совсем
чисто будет, если вы удалите из папки ./i586/base srclist.myrep и
srclist.myrep.bz2 (если нет *.src.rpm ) или pkglist.myrep и pkglist.myrep.bz2 (
если отсутствуют *.rpm).