Сегодня мы хотим осветить очень важную тему, особенно, если у вас несколько компьютеров под управлением Ubuntu Linux и не хочется обновлять каждый из них через интернет. В общем, речь пойдет про локальные сервера обновлений для Ubuntu.
Во многом эта заметка основана на статье «Apt-cacher как корпоративный сервер обновлений для Ubuntu/Kubuntu/*buntu», размещенной на сайте habrahabr.ru.
Долгое время стандартом де факто для поднятия локального сервера обновлений являлся apt-mirror, но у него есть несколько недостатков, главным из которых, пожалуй, является нерациональное использование дискового пространства.
Гораздо более интересным и гибким решением является apt-cacher, который умеет хранить только нужные пакеты, обновлять локальный репозиторий по мерее обновления основного, и, конечно же, качать пакет только один раз, а затем брать его из кэша. В общем-то, это действительно хорошее решение для обновления компьютеров с Ubuntu в количестве больше одного, объединенных в одну сеть.
Из минусов автор статьи выделяет следующие: отличие структуры хранения пакетов от оригинальной (а разве нам важно, как они хранятся?) и обязательное наличие веб-сервера Apache (который поднимается за 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: 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.
Создание локального репозитория.
1. Устанавливаем dpkg-dev
apt-get install dpkg-dev
2. Создаем директорию где будут хранится пакеты
mkdir /usr/local/mydebs
3. Открываем gedit и создаем новый файл. Туда вставляем:
cd /usr/local/mydebs
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Файл называем например update-mydebs и сохраняем в домашнюю директорию /bin. Если ресурса ~/bin нет - то создайте его. Этот ресурс будет автоматически добавлен в предопределенные пути системы.
4. Делаем скрипт апдейта локального репозитория исполняемым:
chmod u+x ~/bin/update-mydebs
5. Правим файл sources.list
Жмем ALT+F2 вводим
gksu gedit /etc/apt/sources.list
Добавляем в него строку
deb file:/usr/local/mydebs ./
Сохраняем файл.
Использование репозитория
sudo update-mydebs
sudo apt-get update
Далее репозиторий используется как обычно.
Комментариев нет:
Отправить комментарий