Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Кэширование пакетов.  (Прочитано 5095 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nvx

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Кэширование пакетов.
« : 11 Января 2008, 13:25:43 »
Взято с whylinux.ru, поскольку имеет отношение к Ubuntu, то вот сюда еще:

Кэшируем пакеты с apt-cacher

http://whylinux.ru/2008/01/11/tt-keshiruem-pakety-s-apt-cacher

Вы убедили начальство перейти на Linux? Вы поставили в компьютерном классе машины с Linux? В общем, вы заимели несколько машин с Linux, например с Debian или Debian-based (Ubuntu/Kubuntu/Runtu/Mepis и т.п.)?

Одна проблема точно будет мучать вас постоянно: как уменьшить интернет трафик для вашего парка Linux-машин, ведь периодически пользователи будут ставить новые пакеты из репозитория?

Вам нужно иметь отдельную машину на которой будет крутится срез репозитория и которая будет этот срез периодически обновлять, а все остальные машины нацелить на нее, чтобы они устанавливали пакеты не по отдельности с интернета, а именно с этой машины. Статей по разворачиванию локального репозитория много, и мы тоже готовимся опубликовать одну, и вот, в процессе подготовки статьи, мы наткнулись на полезную статью с www.debuntu.org.

На базе нее мы решили сделать T&T посвященный кэшированию пакетов.

Итак, вы развернули парк машин с одинаковым дистрибутивом (с локальным репозиторием или без него - суть не важна, важна экономия интернет трафика). Задача состоит в том, чтобы когда на один из компьютеров пользователь устанавливал пакет - этот пакет сохранялся на специальной машине (назовем ее repository-cache, т.е. "кэш-репозиторием"), а остальные пользователи, при попытке поставить этот пакет (или обновление безопасности) на свои компьютеры, скачивали его уже из локального кэша, а не из интернета.

Настройка кэширующего компьютера (repository-cache):

установите apt-cacher:

$ sudo apt-get install apt-cacher

после установки отредактируйте его конфигурационный файл /etc/apt-cacher/apt-cacher.conf

по умолчанию apt-cacher работает на порту 3142 (можете изменить это значение, только при настройки клиентских машин не забудьте правильно указать порт).

allowed_hosts - кому разрешено обращаться за обновлениями, подставьте значения свой локальной сети (например 192.168.1.0/24) и адрес localhost:

allowed_hosts=192.168.1.0/24, 127.0.1.1

generate_reports - генерировать отчеты об активности кэша, по умолчанию включен - 1, чтобы выключить - 0

path_map - назначить короткие имена для репозиториев, например если вы назначите

path_map = ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu ; ubuntu-security security.ubuntu.com/ubuntu

то вы сможете проще настроить доступ к ним с клиентских машин,
настроив у клиента ссылку на кэширующую машину в виде:

http://repository-cache:3142/ubuntu

а не в виде перечисления полного имени:

http://repository-cache:3142/archive.ubuntu.com/ubuntu

таким образом сделайте алиасы для всех репозиториев которые вам понадобятся

Чтобы запустить apt-cacher его нужно активировать здесь /etc/default/apt-cacher.
Откройте /etc/default/apt-cacher и установите значение AUTOSTART на 1:

AUTOSTART=1

Теперь перезапустите apt-cacher:

$ sudo /etc/init.d/apt-cacher restart



Ну вот с настройкой кэширующей машины мы закончили, теперь пора править клиентские машины, точнее их файлы /etc/apt/sources.list , для того чтобы другие компьютеры обновляли и ставили пакеты через нее.

Вот отрывок из оригинального файла /etc/apt/sources.list (кстати сохраните его куда-нибудь):

#ubuntu main repository
deb http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
#ubuntu updates repository
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse
#ubuntu security updates repository
deb http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse

Нам его нужно перенаправить на нашу машину repository-cache работающую на порту 3142, для этого делаем изменения в этих записях:

#ubuntu main repository
deb http://repository-cache:3142/ubuntu edgy main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu edgy main restricted universe multiverse
#ubuntu updates repository
deb http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse
#ubuntu security updates repository
deb http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse

Почти что готово, сохраняем файл и даем на каждой машине команду:

$ sudo apt-get update

и понеслось :)

Если на вашей кэширующей машине в каталоге /var/cache/apt/archives/ уже есть пакеты, их тоже можно добавить в кэш, вот так:

$ sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

обязательно выполняйте с привилегией суперпользователя, иначе пакеты не скопируются в /var/cache/apt-cacher/packages/

проверить есть ли теперь эти пакеты в кэше, можно заглянув в /var/cache/apt-cacher/packages/

Кстати, отчеты по утилизации кэша можно посмотреть здесь:

http://repository-cache:3142/report

если вы их не отключили :)
Ну а если нужно перегенерировать отчет снова:

$ sudo /usr/share/apt-cacher/apt-cacher-report.pl






« Последнее редактирование: 11 Января 2008, 13:37:22 от nvx »

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.