Локальный репозиторий необходим для экономии трафика в корпоративной сети. Вдобавок, значительно ускоряется время обновления серверов и рабочих станций.
Вариант с созданием локального зеркала репозитория был сразу отвергнут, потому что при этом трафик не экономился, а совсем наоборот. Зеркало содержало бы избыточный набор пакетов для разных архитектур, плюс каждый день обновлялись бы даже те пакеты, которые в локальной сети не использовались. Теоретически, конечно, можно было настроить и зеркало, но я пошёл по другому пути и установил apt-cacher.
По непроверенной (пока) информации apt-cacher больше не поддерживается, вместо него надо использовать apt-cacher-ng
Как работает apt-cacher
Cтоит на сервере и производит кэширование установочных пакетов (или пакетов обновления) .deb. Этот же сервер прописан на клиентских машинах как источник репозиториев.
Когда пользователь клиентской машины инициирует обновление или установку ПО, его машина подключается к серверу и запрашивает необходимые пакеты. При запрашивании пакета сервер проверяет, есть ли его последняя версия в локальном кэше и если есть, то пакет отправляется пользователю немедленно. В противном случае apt-cacher (apt-cacher-ng) скачивает обновлённую версию пакета, одновременно транслируя его пользователю. Новая версия остаётся в кэше для дальнейшего использования.
То есть, по сути, apt-cacher - это прокси для .deb-пакетов.
Настройка сервера
server - имя локального сервера обновлений.
192.168.0.0/24 - IP-адреса нашей сети.
Запускаем от имени суперпользователя:
Локальный репозиторий почти готов. Осталось отредактировать файл конфигурации /etc/apt-cacher/apt-cacher.conf:
# Обращаем внимание на эту строку. Это пользователь, от имени которого будет запускаться apt-cacher. # Этому пользователю надо будет дать права доступа на запись в каталог /полный/путь/к/каталогу/кэша/ group=www-data user=www-data
# Разрешаем нужные адреса. allowed_hosts=192.168.0.0/24, 127.0.0.1
# Личные враги в организации :) Как пример задания адресов. denied_hosts=192.168.0.12, 192.168.0.15-192.168.0.18
В большинстве случаев этого достаточно.
Ставим apt-cacher на автозапуск. Для этого в файле /etc/default/apt-cacher определяем переменную AUTOSTART.
Для порядка можно сразу добавить в кэш пакеты, которые уже установлены на сервер. Выполняем в консоли:
Чтобы все изменения вступили в силу и сервер репозиториев заработал, надо перезапустить демона.
Настройка клиентов
Способ «в лоб» - это отредактировать файл источников приложений /etc/apt/sources.list. В этом файле каждый адрес типа:
Надо заменить на
3142 - номер порта, который по умолчанию слушает apt-cacher.
Второй способ (предпочтительнее) - вместо того, чтобы менять каждую запись в sources.list и в каждом из дополнительных репозиториев, можно в /etc/apt/apt.conf добавить строчку:
Для этого можно выполнить команду:
для apt-cacher или
для apt-cacher-ng.
Более того, если при установке системы выбрать, что работаем через прокси и указать сервер server и порт 3142, то эта запись в установленной системе появится автоматически.
Чтобы проверить связь с репозиторием и обновить источники, выполняем:
Первый способ полезен, если планируется кэшировать не все источники приложений. (Я не могу придумать такую ситуацию, но мало ли.)
Второй способ удобнее в подключении рабочей станции к локальному репозиторию и позволяет быстро вернуть всё как было в случае сбоев.
Оба способа подключения нельзя использовать одновременно. Или один, или другой. Иначе не будет работать.
Комментарии