chantra. Как настроить кэш репозитория с помощью apt-cacher, 2006

Перевод статьи: How To Set up a repository cache with apt-cacher

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

Имея разные компьютеры, работающие на одинаковом дистрибутиве, полезно настроить кэш в вашей локальной сети. Таким образом, вам не нужно скачивать из официального репозитория общие пакеты больше одного раза.

В этом случае имеется один компьютер, который называется repository-cache (кэш репозитория), этот компьютер будет работать в качестве кэша репозитория, в то время как остальные компьютеры в вашей сети будут пользоваться им, как обычным репозиторием.

1. Приступим

Как обычно, вам нужно установить необходимые пакеты на первом компьютере. Поэтому введите в терминале:

$ sudo apt-get install apt-cacher

Когда команда будет выполнена, пора перейти к файлу настройки /etc/apt-cacher/apt-cacher.conf

2. Настройка Apt-Cacher

2.1. apt-cacher.conf

И так, откроем главный файл конфигурации apt-cacher'а: /etc/apt-cacher/apt-cacher.conf и начнём редактировать его в соответствии с вашими настройками.

По умолчанию apt-cacher ожидает подключений на порту 3142. Вы можете поменять это значение на то, которое вам нужно.

allowed_hosts: по умолчанию все перечисленные здесь узлы имеют право использовать кэш репозитория. Вы можете изменить это значение, если вы хотите предоставить доступ только определённым узлам. В моём случае, я хочу разрешить доступ моей локальной сети 192.168.1.0/24 и локальному узлу (localhost - 127.0.0.1 и 127.0.1.1 на системах с ubuntu), поэтому я меняю значение следующим образом:

allowed_hosts=192.168.1.0/24, 127.0.1.1

Поскольку 127.0.0.1 разрешён всегда, не обязательно добавлять адрес 127.0.0.1.

generate_reports: Эта директива заставляет apt-cacher создавать ежедневный отчёт по эффективности вашего кэша. По умолчанию это 1, если вы хотите отключить его, установите его в 0.

path_map: Это любопытная директива. Здесь вы можете определить различные псевдонимы для различных узлов репозиториев. На моём компьютере с ubuntu edgy, моя директива path_map выглядит следующим образом:

path_map = debuntu repository.debuntu.org; ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu; ubuntu-security security.ubuntu.com/ubuntu

Позвольте мне немного пояснить. Здесь я создал отображения в следующие имена:

Теперь, чтобы получить доступ к определённому репозиторию, нам требуется просто добавить псевдоним к нашему серверу с кешем репозиториев, например: компьютер_с_кэшем_репозитория:порт/псевдоним

Например, мы можем получить доступ к репозиторию debuntu через http://repository-cache:3142/debuntu и к репозиторию ubuntu secutiry через http://repository-cache:3142/ubuntu-security.

2.2. Включение apt-cacher'а

Чтобы запустить apt-cacher, его нужно включить из файла /etc/default/apt-cacher. Откроем файл /etc/default/apt-cacher и установим AUTOSTART в 1:

AUTOSTART=1

Теперь перезапустим apt-cacher:

$ sudo /etc/init.d/apt-cacher restart

Теперь apt-cacher запущен, время исправить файлы всех наших клиентов /etc/apt/sources.list на каждом узле в сети, где мы хотим использовать компьютер с кэшем репозитория.

3. Настройка файла sources.list клиентов и серверов

Настало время настроить на клиентских узлах файлы источников apt: /etc/apt/sources.list. Важно использовать кэш репозитория ткаже и на самом сервере, таким образом любые обновления, выполненные сервером, будут заполнять кэш.

Исходный /etc/apt/sources.list:

#репозиторий debuntu
deb http://repository.debuntu.org edgy multiverse
deb-src http://repository.debuntu.org edgy multiverse

#главный репозиторий ubuntu
deb http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse

#репозиторий обновлений ubuntu
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse

#репозиторий обновлений безопасности ubuntu
deb http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse

Чтобы использовать наш кэш репозитория, эти записи необходимо заменить на:

#репозиторий debuntu
deb http://repository-cache:3142/debuntu edgy multiverse
deb-src http://repository-cache:3142/debuntu edgy multiverse

#главный репозиторий ubuntu
deb http://repository-cache:3142/ubuntu edgy main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu edgy main restricted universe multiverse

#репозиторий обновлений ubuntu
deb http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse

#репозиторий обновлений безопасности ubuntu
deb http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse

Классно, теперь чтобы каждый каждый узел получал пакеты .deb из нашего репозитория, нужно запустить:

$ sudo apt-get update

на каждом узле.

4. Импорт существующих пакетов из /var/cache/apt/archives/ в репозиторий apt-cacher

Может случиться, что ваш сервер уже имеет большое количество пакетов, находящихся в локальном кэше репозитория: /var/cache/apt/archives/. apt-cacher содержит инструмент, позволяющий имортировать эти файлы в репозиторий apt-cacher'а.

Это большое количество полезных сценариев можно найти в каталоге /usr/share/apt-cacher/. Интересующий нас называется apt-cacher-import.pl. Для импорта файлов .deb из каталога /var/cache/apt/archives в репозиторий apt-cacher запустите:

$ sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

Его нужно запускать от имени пользователя root или файлы .deb могут не скопироваться в кэш репозитория.

Теперь каталог /var/cache/apt-cacher/packages/ должен пополниться целой кучей пакетов.

5. Получение отчётов об использовании вашего кэша репозитория

Если вы оставили значение директивы generate_reports равным 1, apt-cacher будет составлять отчёты по использованию кэша каждый день.

Вы можете получить к ним доступ по адресу: http://repository-cache:3142/report

Если вам нужно перегенерировать отчёт, запустите:

$ sudo /usr/share/apt-cacher/apt-cacher-report.pl

6. Заключение

apt-cacher - это простой и эффективный пакет, который одновременно экономит ваше время и пропускную способность канала при использовании нескольких компьютеров, работающих на одинаковом дистрибутиве, как это бывает в домашней сети или в компании.

Написать автору перевода