FreeSource: DmitriyKruglikov/Repository

Создание собственного репозитория пакетов

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

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

Да, это так же позволяет иметь возможность получить некоторую сумму наличных денег в качестве компенсации за потраченное время и труд по отбору и тестированию пакетов. Я надеюсь, у вашего порога уже выстроилась очередь... У меня пока ни кого :)

Создадим репозиторий для личного использования, в таком случае :)

Лучшим описанием, которое мне попалось на глаза, был материал Алексея Любимова .

На основе его и написана данная статья.

Создание своего репозитария состоит из трех пунктов

  1. создаем стандартную структуру каталогов и линков
  2. записывваем *.rpm в папку RPMS, а *.src.rpm в SRPMS
  3. запускаем genbasedir

После этого остается только залить получившийса репозитарий на сдром или на ftp

или просто положить его на постоянное место и либо добавить этот сдром командой

apt-cdrom add или отредактировать /stc/apt/sources.list

и сделать apt-get update и пользоваться в свое удовольствие.

1. Стандартная (упрощеная) структура репозитария

Обратите внимание, что символические ссылки на каталоги RPMS SRPMS должны быть

относительными, а не абсолютными, иначе вы будете неприятно удивлены.

./disc/info – файл с именем вашего репозитария. Будет отображаться в списке.

Если этого каталога (и файла) не существует, имя репозитария будет запрошено командой

apt-cdrom add 

Так же, имя репозитория может быть задано из командной строки, или в скрипте, при вызове genbasedir

myrep в листинге – ваше слово – название репозитария.

2. Заливаем РПМки

Просто копируем *.rpm в ./i586/RPMS, а *.src.rpm в ./SRPMS.

Нет нужды следить за соответствием пакетов src.rpm и их бинврных версий.

Не обязательно заливать сразу и бинарники и исходники – можно что то одно.

Просто папка ./i586/RPMS или ./SRPMS. останется пустой.

АПТ работает со всей базой репозитариев в целом и его не будет заботить то,

что в конкретном репозитарии чего то не хватает по отношению к самому себе.

Главное, чтобы хоть в каком то репозитарии нашлось подходящее.

3. genbasedir обрабатываем репозитарий.

Когда репозитарий заполнен, надо создать служебные файлы-индексы для работы АПТа.

Замечание:

Чтобы команда genbasedir присутствовала в вашей системе — установите пакет apt-utils.

Эти файлы лежат в папке ./i586/base и создаются утилитой genbasedir.

#genbasedir --topdir=/home/avl/rep i586 myrep

Другой вариатн этой команды

#genbasedir --origin=ORIGIN --label=LABEL --topdir=/home/Repositary/ i586 myrep

Добавит дополнительную информацию о вашем репозитарии

--topdir=/home/avl/rep – опция указывающая абсолютный путь к вершине нашего репозитария.

i586 – архитектура под которую строить индексы

(если вам нужна другая архитектура – не забудте изменить структуру репозитария).

myrep – название репозитария (аналогично, при изменении см. в структуру репозитария)

Результат:

все готово.

Замечание 1.

если вы не заливали бинарники или исходники – все равно индекс для них будет создан (нулевой индекс) .

это не ошибка и прекрасно будет работать, но совсем чисто будет, если вы удалите из папки ./i586/base

srclist.myrep и srclist.myrep.bz2 (если нет *.src.rpm ) или pkglist.myrep и pkglist.myrep.bz2

(если отсутствуют *.rpm).

Замечание 2.

строчки для /etc/apt/sources.list будут такими:

#для ftp

или

#если прямо из директории

#для сдром

apt-cdrom add сам все пропишет, как надо :)

Маленькая хитрость: Я создал вышеописанную структуру в дереве своего FTP сервера, а в каталоге /var/cache/apt создал символическую ссылку

archives -> /var/ftp/pub/Repository/i586/RPMS

Таким образом, все пакеты, которые я загружаю для себя, автоматически попадают туда, откуда я раздаю потом репозиторий.

И создал малюсенький скрипт для перестроения репозитория:

На рабочих станциях добавлено в /etc/apt/sources.list

И всё.... Этот же репозитроий записываю на DVD и ношу домой... Если лень нести ноутбук.

А ноутбук, подключенный в любой локалке, становится переносным репозиторием по FTP.

Ссылок на эту страницу нет