Как создать свой репозиторий для Debian

Как создать свой репозиторий для Debian

Создание локального репозитория намного упрощает жизнь администраторов и экономит входящий трафик, защищая каналы от переполнения. Локальные репозитории пакетов – хороший выбор для крупной организации с большим количеством компьютеров, которые объединены в локальную сеть. Для Debian-based дистрибутивов Linux существуют три инструмента для создания локальных репозиториев – apt-mirror, debmirror и reprepro.

Утилита apt-mirror

Пакет apt-mirror считается самым надежным инструментом зеркалирования.
Сначала выполняем установку самого пакета:

apt-get install apt-mirror

Для хранения пакетов локального репозитория нужно создать каталоги

mkdir -p /mnt/repo/debian/{mirror,var,skel}

Для надежности работы, каталог /mnt/repo/debian желательно создать на отдельном разделе смонтированного диска – тогда при переустановке либо сбое системы, все пакеты “продолжат жить”.

Предполагаем, что мы будем хранить в репозитории:

  • бинарные пакеты под amd64 jessie (stable-ветка) и их исходный код
  • бинарные пакеты с обновлениями безопасности под amd64 jessie (stable-ветка) и их исходный код
  • бинарные пакеты с другими обновлениями под amd64 jessie (stable-ветка) и их исходный код
  • бинарные Backports-пакеты под amd64 jessie (“двери” в ветки testing и unstable)
  • пакеты udebs

В файле конфигурации /etc/apt/mirror.list приводим ключевые параметры к следующему виду (некоторые комментарии и опции по-умолчанию пропущены):

# основной каталог локального репозитория Debian

set base_path    /mnt/repo/debian

# Не выполнять пост-обработку

set run_postmirror 0

# параметры

set nthreads     20

set _tilde 0

# бинарные пакеты под amd64 jessie (stable-ветка) и их исходный код

deb-amd64 http://httpredir.debian.org/debian jessie main contrib non-free

deb-src http://httpredir.debian.org/debian jessie main contrib non-free

# бинарные пакеты с обновлениями безопасности под amd64 jessie (stable-ветка) и их исходный код

deb-amd64 http://security.debian.org/ jessie/updates main contrib non-free

deb-src http://security.debian.org/ jessie/updates main contrib non-free

# бинарные пакеты с другими обновлениями под amd64 jessie (stable-ветка) и их исходный код

deb-amd64 http://httpredir.debian.org/debian/ jessie-updates main contrib non-free

deb-src http://httpredir.debian.org/debian/ jessie-updates main contrib non-free

# udebs-пакеты

deb-amd64 http://httpredir.debian.org/debian jessie main/debian-installer

# бинарные Backports-пакеты под amd64 jessie (“двери” в ветки testing и unstable)

deb-amd64 http://httpredir.debian.org/debian/ jessie-backports main contrib non-free

deb-src http://httpredir.debian.org/debian/ jessie-backports main contrib non-free

# очистка от не-индексированных в Release файлов

clean http://httpredir.debian.org/debian

clean http://security.debian.org

# пропускаем удаление файлов в каталоге

skip-clean http://httpredir.debian.org/debian/dists/jessie/main/installer-amd64/

Каждый из веб-каталогов, указанных в файле настроек, желательно проверить на существование.

В случае, если в репозиторий желательно включить еще какие-то архитектуры, релизы либо ветви – соответствующие  строки добавляются сюда же по аналогии с jessie amd64.

Чтобы вручную создать и/или обновить локальный репозиторий, выполняется

# apt-mirror

Безусловно, есть смысл создать cron-правило для синхронизации локального зеркала (официальные репозитории обновляются в 3:00, 9:00, 15:00 и 21:00):

crontab -e

05 01 * * *     apt-mirror >> /var/log/apt-mirror.log

05 03 * * *     /mnt/repo/debian/var/clean.sh >> /var/log/apt-mirror.log

Последним шагом будут настройки доступа к каталогам репозитория. Например, для строки из mirror.list вида
deb-amd64 http://httpredir.debian.org/debian jessie main contrib non-free
физически файлы будут храниться в

/mnt/repo/debian/mirror/httpredir.debian.org/debian
Доступ к этим каталогам может осуществляться через Web или FTP.
Также при наличии пакетов из нескольких веток, желательно добавить симлинки вида stable,testing и unstable:

ln -s /media/repo/debian/mirror/httpredir.debian.org/debian/dists/jessie /media/repo/debian/mirror/httpredir.debian.org/debian/dists/jessie/stable

О том, как защитить локальный репозиторий gpg-ключом, вы можете узнать на нашем авторском курсе “L2-Security. Безопасность в Linux“.

Залишити відповідь

Дякуємо, що поділились