Apt-proxy это сервис, который позволяет экономить трафик, при одновременном обновлении большого количества компьютеров за счёт кэширования.
Фактически apt-proxy выглядит как зеркало репозитория apt с полными заголовками, но не содержащее всего набора пакетов и докачивающее их из сети по мере необходимости.
Ниже будет показано как установить и настроить apt-proxy на сервере под управлением Ubuntu Server 9.04.
В процессе настройки мы будем опираться на инструкцию от Ubuntu Community и в случае возникновения каких либо проблем рекомендуем начинать с неё.
Будем считать что сервер имеет в локальной сети IP-адрес 192.168.2.1. Для начала установим apt-proxy:
apt-get install apt-proxy
Далее открываем в редакторе файл /etc/apt-proxy/apt-proxy-v2.conf и приступаем к настройке.
Большую часть параметров можно оставить по умолчанию, однако как минимум следует обратить вниманием на параметр address секции [DEFAULT]. Этот параметр указывает на каком адресе должен слушать сервис. Здесь нужно указать адрес сервера:
address = 192.168.2.1
Дальше описываем используемые репозитории. Описание репозитория имеет вид:
[имя_виртуального_репозитория] ; строки, начинающиейся с точки запятой являются комментариями ; параметр backends содержит реальные адреса репозиториев, разделённые пробелами backends = http://server1/dir1 http://server2/dir2 ; параметр min_refresh_delay указывает минимальное время жизни файлов в кэше min_refresh_delay = 1d
Автор использует следующий список репозиториев:
[ubuntu] ;; Основной архив с пакетами Ubuntu backends = http://mirror.telecet.ru/ubuntu/ min_refresh_delay = 1d [ubuntu-security] ;; Обновления безопасности backends = http://security.ubuntu.com/ubuntu/ min_refresh_delay = 1d [qutim] ;; qutim IM client backends = http://qutim.org/debian/jaunty/ min_refresh_delay = 1d [wine] ;; wine is not an emulator backends = http://wine.budgetdedicated.com/apt/ min_refresh_delay = 1d [medibuntu] ;; medibuntu backends = http://packages.medibuntu.org/ min_refresh_delay = 1d [virtualbox] ;; VirtualBox - Virtual Machine Emulator backends = http://download.virtualbox.org/virtualbox/debian/ min_refresh_delay = 1d [google] ;; Репозиторий с ПО от Google backends = http://dl.google.com/linux/deb/ min_refresh_delay = 1d
Закончив конфигурирование нужно перезапустить apt-proxy:
invoke-rc.d apt-proxy restart
Теперь переходим к конфигурированию клиентов. Основное отличие старой конфигурации (без apt-proxy) от новой (с apt-proxy) заключается в том, что вместо реальных адресов репозиториев.
В случае приведённого выше примера конфигурации и при использовании на машинах дистрибутив Ubuntu Jaunty файл /etc/apt/sources.list будет иметь вид:
# Поддерживаемое несвободное ПО deb http://192.168.2.1:9999/ubuntu/ jaunty main restricted # Обновления поддерживаемого несвободного ПО deb http://192.168.2.1:9999/ubuntu/ jaunty-updates main restricted # Неподдерживаемое свободное ПО deb http://192.168.2.1:9999/ubuntu/ jaunty universe # Обновления неподдерживаемого свободного ПО deb http://192.168.2.1:9999/ubuntu/ jaunty-updates universe # Неподдерживаемое несвободное ПО deb http://192.168.2.1:9999/ubuntu/ jaunty multiverse # Обновления несвободного неподдерживаемого ПО deb http://192.168.2.1:9999/ubuntu/ jaunty-updates multiverse # Бэкпорты deb http://192.168.2.1:9999/ubuntu/ jaunty-backports main restricted universe multiverse # Коммерческое ПО deb http://archive.canonical.com/ubuntu jaunty partner # Обновления безопасности поддерживаемого свободного ПО deb http://192.168.2.1:9999/ubuntu-security jaunty-security main # Обновления безопасности поддерживаемого несвободного ПО deb http://192.168.2.1:9999/ubuntu-security jaunty-security restricted # Обновления безопасности неподдерживаемого свободного ПО deb http://192.168.2.1:9999/ubuntu-security jaunty-security universe # Обновления безопасности несвободного неподдерживаемого ПО deb http://192.168.2.1:9999/ubuntu-security jaunty-security multiverse # Мессенджер qutim deb http://192.168.2.1:9999/qutim jaunty main # Эмулятор wine deb http://192.168.2.1:9999/wine jaunty main # Виртуальная машина VirtualBox deb http://192.168.2.1:9999/virtualbox jaunty non-free # Архив с дополнительными мультимедийными кодеками и закрытым ПО deb http://192.168.2.1:9999/medibuntu jaunty free non-free # ПО от Google deb http://192.168.2.1:9999/google stable non-free deb http://192.168.2.1:9999/google testing non-free
После этого можно смело обновить систему на клиентских компьютерах:
apt-get update && apt-get dist-upgrade
Чем больше в локальной сети компьютеров с примерно одинаковым набором ПО, тем больше экономия трафика за счёт apt-proxy. На этом всё. Приятной работы!