Локальный сервер обновлений Ubuntu

В этой статье я постараюсь осветить весьма важную тему, особенно если в вашем пользовании находятся несколько машин под Linux Ubuntu, а обновлять их каждый день через интернет желания нету. В общем у нас речь пойдет о локальных серверах обновления для Ubuntu. Продолжительное время стандартным де факто для того, что бы поднять локальный сервер обновления, был apt-mirror, однако он имеет некоторые недостатки, основным из которых пожалуй является нерациональное использования места на диске.

На порядок более гибким и интересным решением является apt-cather, у которого есть функция хранения лишь нужных пакетов., обновления локального репозитория по мере того, как обновится основной, ну и конечно же единоразовое скачивание пакета, затем программа вынимает его из кэша. С большего это неплохое решение для того, что бы обновить компьютеры с Linux, если их больше одного и они объеденены в одну единую сеть. Из минусов лишь два: при хранении пакетов их  структура отличается от оригинала (а кому какое дело в каком виде они хранятся?), второй минус  в обязательном наличии у вас веб-сервера Appache (который при желании можно поднять за 2 минуты). Ладно, не будем зацикливаться на всех этих тонких настройках, которые можно найти в оригинальном описании, мы просто обозначим ключевые моменты. Поехали: sudo apt-get install apt-cacher. Создаем, а затем назначаем права на папку, которая будет хранить наши пакеты. Хочу заметить, что apt-cacher не требует место сразу под все репозитории (объем их в районе 22Гб), а хранит лишь то, что нужно. Напомню, что Debian дистрибьютиве Apache можно запустить от пользователя www-data группы www-data, из этого следует то , что требуется сделать юзера владельцем папки, которую мы создали. Если понадобятся настройки apt-cacher, то они хранятся в файлике: /etc/apt-cacher/apt-cacher.conf. Вот его и требуется не много отредактировать, указать внутри созданную папку для пакетов и несколько других параметров. Делаем следующий шаг —  настраиваем Apache. Для работы apt-cacher нам потребуется Perl и ExecCGI в Apache. Файл с конфигурацией находится в /etc/apt-cacher/apache.conf, вам достаточно только прописать Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl и дать добро на выполнение Perl скриптов в указанной папочке : Options ExecCGI, AddHandler cgi-script .pl. Практически все готово, нам остается лишь запустить свой сервер: sudo /etc/init.d/apt-cacher start. Сервер будет висеть по умолчанию на 9999 порту. Сейчас на всех машинах, которые должна качать обновления с данного сервера требуется открыть файл: /etc/apt/sources.list, откомментировать все настройки и еще одну добавить deb updateserver:9999/ubuntu intrepid multiverse restricted main universe, где updateserver – это имя компьютера на котором мы только что подняли apt-cacher. Ура товарищи! Теперь все у нас обновляется экономно, красиво и правильно!