Debian — Создание локального репозитория (apt-mirror)

Создание локального репозитория c помощью утилиты apt-mirror.
Этот способ зеркалирования, рекомендован WiKi Debian как гораздо более надёжней нежели debmirror.
Итак начнём, установим apt-mirror:
apt-get install apt-mirror
Создаём каталог /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем. И служебных каталогов:
mkdir -p /mnt/repo/debian/{mirror,var,skel}

Настройка apt-mirror
Допустим нам нужно зеркало с готовыми к установке (бинарными) пакетами для x64 Wheezy.
(как узнать какое самое быстрое зеркало) Правим конфигурационный файл /etc/apt/mirror.list:
nano /etc/apt/mirror.list
############# config ##################
# Базовый каталог, в нём будет создано локальное зеркало репозитория Debian
set base_path           /mnt/repo/debian
#
# Пути к файлам зеркала, временным файлам и журналy выполнения apt-mirror
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
#
# Архитектура, для которой создаётся зеркало. По умолчанию - это архитектура
# системы, на которой работает apt-mirror (amd64,i386 или др.). Менять не ненужно,
# т.к. ниже мы явно укажем и зеркало и архитектуру.
# set defaultarch  
#
# Пусть к скрипту постобработки, по-умолчанию отсутствует, пока нам не нужен.
# set postmirror_script $var_path/postmirror.sh
#
# Не запускать скрипт постобработки
set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

# Зеркало с пакетами wheezy x64 + исходные тексты
deb-amd64 ftp://debian.nsu.ru/debian wheezy main contrib non-free
deb-src ftp://debian.nsu.ru//debian wheezy main contrib non-free

# Зеркало с обновлениями безопасности wheezy + исходные тексты
deb-amd64 http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# Зеркало необходимое для сетевой установки (udebs)
deb-amd64 ftp://debian.nsu.ru/debian wheezy main/debian-installer

# Удаляем файлы не индексированные в Release
clean ftp://debian.nsu.ru/debian
clean http://security.debian.org

# Запрещаем очистку выбранной папки
skip-clean ftp://debian.nsu.ru/debian/dists/wheezy/main/installer-amd64/
Если необходимо хранить несколько зеркал для разных выпусков и архитектур, то добавляем новые строки типа:
#deb-alpha http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-amd64 http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-armel http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-hppa http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-i386 http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-ia64 http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-m68k http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-mips http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-mipsel http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-powerpc http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-s390 http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-sparc http://ftp.us.debian.org/debian unstable main contrib non-free
Запуск и автоматизация apt-mirror
Для ручного запуска создания\обновления зеркала выполняем команду:
# apt-mirror
После загрузки индексных файлов apt-mirror сообщит, какой объём пакетов нужно получить:
Downloading 47 index files using 20 threads...
Begin time: Wed Jan  8 21:41:11 2014
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... 
End time: Wed Jan  8 21:41:33 2014

Proceed indexes: [SSPPP]

84.2 GiB will be downloaded into archive.
Downloading 90890 archive files using 20 threads...
Begin time: Wed Jan  8 21:41:50 2014
[20]... 
...
...
...
Остаётся только дождаться завершения скачивания.
Для автоматической синхронизации и очистки зеркал нужно добавить строку в настройки cron и выставить подходящее время. Обновление официальных зеркал происходит каждые 6 часов: 3:00,9:00,15:00,21:00. Например так:
crontab -l

05 01 * * *     apt-mirror >> /var/log/apt-mirror.log
05 03 * * *     /mnt/repo/debian/var/clean.sh >> /var/log/apt-mirror.log
Настройка доступа к зеркалу
После завершения работы локальные копии всех указанных репозиториев окажутся в каталогах /mnt/repo/debianmirror/имя_репозитория . Таким образом копия репозитория, которая была определена в mirror.list как
deb-amd64 ftp://debian.nsu.ru/debian wheezy main contrib non-free
окажется в каталоге /mnt/repo/debian/mirror/debian.nsu.ru/debian/. Доступ именно к этому каталогу нужно открывать любым удобным для Вас Web или FTP сервером. Для корректной работы обязательно необходимо добавить символические ссылки «stable»,»testing», «unstable» если таковы имеются …
ln -s /mnt/repo/debian/mirror/debian.nsu.ru/debian/dists/wheezy /mnt/repo/debian/mirror/debian.nsu.ru/debian/dists/stable
Далее очень желательно подписать вновь созданный репозиторий
Источник