2007/03/26

Создание локального зеркала debian-репозитария пакетов

1. Установить утилиту apt-mirror. В процессе установки будет создан новый пользователь apt-mirror с домашней директорией /var/spool/apt-mirror
apt-get install apt-mirror

2. Сконфигурировать apt-mirror, конфигурационный файл /etc/apt/mirror.list. Пример конфигурационного файла:

##
## The default configuration options (uncomment and change to override)
##
#
# set base_path /var/spool/apt-mirror
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
#
# set defaultarch
# set nthreads 20
#
set _tilde 0

###
### sarge's section
###
deb http://ftp.at.debian.org/debian sarge main contrib non-free
deb-src http://ftp.at.debian.org/debian sarge main contrib non-free

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

deb http://ftp.at.debian.org/debian sarge main/debian-installer

# sarge-proposed-updates's section
deb http://ftp.at.debian.org/debian sarge-proposed-updates main contrib non-free
deb-src http://ftp.at.debian.org/debian sarge-proposed-updates main contrib non-free

###
### etch
###
deb http://ftp.at.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.at.debian.org/debian/ etch main contrib non-free

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

deb http://ftp.at.debian.org/debian/ etch main/debian-installer

# etch-proposed-updates's section
deb http://ftp.at.debian.org/debian sarge-proposed-updates main contrib non-free
deb-src http://ftp.at.debian.org/debian sarge-proposed-updates main contrib non-free

# sid's section
#deb http://ftp.fi.debian.org/debian sid main contrib non-free
#deb-src http://ftp.fi.debian.org/debian sid main contrib non-free
#deb http://ftp.fi.debian.org/debian sid main/debian-installer

##
## Cleaner configuration example
##
#
# set cleanscript $var_path/clean.sh
#

# Cleaning section
clean http://security.debian.org/
clean http://ftp.at.debian.org/

skip-clean http://ftp.fi.debian.org/doc/

3. Создать локальное зеркало. Операция может занять много времени, всё зависит от того сколько дистрибутивов вы собираетесь "зеркалировать". Например, у меня выбрано sarge и etch - они занимают около 45 Гб. После того как всё будет скачано, операция автоматического обновления зеркала будет проходить в соответствии с файлом /etc/cron.d/apt-mirror. Ежедневные обновления содержат около 100 Мб.

su - apt-mirror -c apt-mirror

4. Автоматизировать очистку локального зеркала - необходимо регулярно запускать на выполнение /var/spool/apt-mirror/var/clean.sh, можно через cron.

5. Сделать локальный репозитарий доступным для локальных серверов, с помощью уже установленного и настроенного Apache - необходимо только создать символьные ссылки для доступа к репозитарию.

ln -s /var/spool/apt-mirror/mirror/security.debian.org/debian /var/www/debian
ln -s /var/spool/apt-mirror/mirror/security.debian.org/debian-security /var/www/debian-security

6. После этого локальное зеркало доступно по адресу http://mirrorserver/debian, http://mirrorserver/debian-security. А файл /etc/apt/sources.list для локальных серверов будет выглядеть примерно так:

deb http://mirrorserver/debian/ etch main
deb-src http://mirrorserver/debian/ etch main
deb http://mirrorserver/debian-security/ etch/updates main


Ссылки:

  1. How To Create A Local Debian/Ubuntu Mirror With apt-mirror

3 comments:

morbo said...

Я использую более экономный вариант - apt-cacher.

Roman Sozinov said...

to morbo:
Благодарю за наводку :)

Lui Polzav said...

Подскажите пожалуйста! Сделал по вашей заметке репозитарий. Разместил его в папке /var/www/mirrors

Делаю ссылку:
ln -s /var/www/mirrors /var/www/

В итоге по адресу http://site/mirrors/ репозитарии доступны, а по http://site/ нет… =(