UMGUM.COM (лучше) 

Apt-Proxy ( Локальный сервер обновлений. )

23 марта 2010  (обновлено 29 декабря 2014)

Эта публикация отнесена в архив. Она неактуальна.
Ресурс по следующей ссылке является преемником: Свежий ветер в среде аккумулирующих серверов обновлений для Debian и Ubuntu.

OS: Debian GNU/Linux Lenny.

Задача: развернуть локальный сервер обновлений с частичным зеркалом "репозиторий", основанном на запросах клиентских компьютеров на основе операционных систем Debian и Ubuntu.

Применим специализированный "прокси" сервер для создания частичных зеркал на основе запросов клиентов. Это будет apr-proxy, сайт разработчиков: http://apt-proxy.sourceforge.net/.

Примем за данность то, что:

"подсеть", в которой мы будем экспериментировать - 10.10/16;
"подсеть", которую мы, наряду с вышеуказанной, будем поддерживать - 192.168/16;
IP адрес нашего сервера - 10.10.2.21/24;
доменное имя нашего сервера - apt.local.

Служба apt-proxy будет слушать порт tcp:9999.Обеспечиваем видимость нашего сервера только со стороны локальных сетей по соответствующему порту.

Инсталлируем:

# aptitude install apt-proxy

Делаем резервную копию конфигурационного файла:


# cp /etc/apt-proxy/apt-proxy-v2.conf /etc/apt-proxy/apt-proxy-v2.conf.dist

Применяем глобальные параметры в конфигурационном файле "apt-proxy-v2.conf":

address = 10.10.2.21
port = 9999
min_refresh_delay = 12h
min_age = 48h
complete_clientless_downloads = 1
timeout = 45
cache_dir = /var/chache/apt-proxy
passive_ftp = on
cleanup_freq = 1d
max_age = 364d
max_versions = 3
dynamic_backends = off

[debian]
backends =
  http://ftp.us.debian.org/debian/
  http://ftp.de.debian.org/debian/
  http://ftp2.de.debian.org/debian/
  ftp://ftp.uk.debian.org/debian/

min_refresh_delay = 1d

[debian-security]
backends =
  http://security.debian.org/debian-security/
  http://ftp2.de.debian.org/debian-security/

[debian-volatile]
backends =
  http://volatile.debian.org/debian-volatile/

[debian-multimedia]
backends =
  http://www.debian-multimedia.org/

[ubuntu]
backends =
  http://archive.ubuntu.com/ubuntu/

[ubuntu-security]
backends =
  http://security.ubuntu.com/ubuntu/

[ubuntu-canonical]
backends =
  http://archive.canonical.com/

[google]
backends =
  http://dl.google.com/linux/deb/

[launchpad]
backends =
  http://ppa.launchpad.net/

[openoffice]
backends =
  http://ftp.freenet.de/pub/debian-openoffice
  http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb
  http://borft.student.utwente.nl/debian

Перезапускаем apt-proxy с новыми параметрами:

# /etc/init.d/apt-proxy restart

На клиентских машинах в локальной сети правим конфигурационные файлы системы apt.

deb http://apt.local :9999/backend dist component

Для Debian, правим "/etc/apt/sources.list". Комментируем символом "#" все имеющиеся в нем строки и размещаем следующие:

deb http://apt.local:9999/debian/ lenny main contrib non-free
deb-src http://apt.local:9999/debian/ lenny main contrib non-free
deb http://apt.local:9999/debian-security/ lenny/updates main contrib non-free
deb-src http://apt.local:9999/debian-security/ lenny/updates main contrib non-free
deb http://apt.local:9999/debian-volatile/ lenny/volatile main contrib non-free
deb-src http://apt.local:9999/debian-volatile/ lenny/volatile main contrib non-free

deb http://apt.local:9999/debian-multimedia/ lenny main contrib non-free
deb-src http://apt.local:9999/debian-multimedia/ lenny main contrib non-free
deb http://apt.local:9999/google/ stable main non-free

Для Ubuntu Jaunty, правим "/etc/apt/sources.list". Комментируем символом "#" все имеющиеся в нем строки и размещаем следующие:

deb http://apt.local:9999/ubuntu/ jaunty main restricted universe multiverse partner
deb-src http://apt.local:9999/ubuntu/ jaunty main restricted universe multiverse partner
deb http://apt.local:9999/ubuntu-security/ jaunty-updates main restricted universe multiverse
deb-src http://apt.local:9999/ubuntu-security/ jaunty-updates main restricted universe multiverse

deb http://apt.local:9999/ubuntu-canonical/ jaunty main restricted universe multiverse partner
deb-src http://apt.local:9999/ubuntu-canonical/ jaunty main restricted universe multiverse partner
deb http://apt.local:9999/google/ stable main non-free

Для Ubuntu Karmic, правим "/etc/apt/sources.list". Комментируем символом "#" все имеющиеся в нем строки и размещаем следующие:

deb http://apt.local:9999/ubuntu/ karmic main restricted universe multiverse partner
deb-src http://apt.local:9999/ubuntu/ karmic main restricted universe multiverse partner
deb http://apt.local:9999/ubuntu-security/ karmic-updates main restricted universe multiverse
deb-src http://apt.local:9999/ubuntu-security/ karmic-updates main restricted universe multiverse

deb http://apt.local:9999/ubuntu-canonical/ karmic main restricted universe multiverse partner
deb-src http://apt.local:9999/ubuntu-canonical/ karmic main restricted universe multiverse partner
deb http://apt.local:9999/google/ stable main non-free

Симпатично в apt-proxy то, что скачанное раскладывается по аккуратному дереву директорий, повторяющему оригинальные репозитории. Но, не обошлось и без пилюльки. "Фишка" apt-proxy - вульгарные "зависания" в процессе получения "хидеров" (header). Без особых причин приложение перестает отвечать на запросы определённого клиента; при том, что другие соединения в это время вполне корректно отрабатываются. Как просто и красиво оборвать или перезапустить "зависшее" соединение мне пока в голову не приходит и, не смотря на простоту конфигурирования, apt-proxy при первом же удобном случае будет дана отставка в пользу более стабильного решения.

P.S. Всё симпатичное со временем сошло на нет под давлением основного негативного фактора - "зависания" сервера во время получения "заголовочных" файлов. Более года маялись мы с этим "apt-proxy", пока с облегчением не перешли на свежее решение "apt-cacher-ng".


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )