Рейтинг@Mail.ru

Наши друзья и партнеры

UnixForum




Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 6: Управление пакетами

Оригинал: "Ubuntu Hacks: Chapter 6 - Package Management"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Совет # 61: Сохраняем пакеты в локальном кэше с помощью Apt-cacher

Если обновляются несколько машин Ubuntu, сэкономьте время и сократите нагрузку на интернет-канал, использовав для этого локальный кэш пакетов.

Если вы управляете несколькими компьютерами с системой Ubuntu, вам, вероятно, хотелось бы использовать какой-нибудь способ, чтобы загрузить новые пакеты только один раз и установить их на каждой машине. Но лучше бы было, если все это работало абсолютно прозрачно, чтобы вы могли просто использовать в Ubuntu обычный инструмент управления пакетами и не волноваться о том, что при этом происходит за кулисами.

Apt-cacher позволит вам добиться именно этого результата. С помощью приложения Apt-cacher, работающего на одном из компьютеров в сети, вы можете настраивать все остальные машины, которые будут загружать пакеты через это приложение.

Подсказка

apt обычно использует протокол HTTP для загрузки пакетов с серверов пакетов; благодаря этому очень просто воспользоваться обычным прокси сервером, таким как Squid [Совет # 98], для локального кэширования пакетов. Но Squid предназначен для кэширования большого количества мелких объектов, а программные пакеты, как правило, представляют собой небольшое количество крупных объектов. Вы можете выяснить, что Squid, прежде всего, удаляет крупные пакеты из кэша, которые, наоборот, очень важно сохранить для повторного использования. Чтобы apt использовал прокси-сервер, вы можете в конфигурационном файле (подробности смотрите в man apt.conf) задать постоянно действующий параметр, либо просто перед запуском apt экспортировать переменную среды окружения http_proxy, выполнив для этого команду export http_proxy=proxy.example.com:8080.

Apt-cacher отличается от многих других систем кэширования, поскольку будучи автономно работающей программой, он работает как скрипт CGI под Apache. В этом есть ряд преимуществ, поскольку он небольшой, простой и, следовательно, более надежный, т. к. ему не нужны собственные средства обработки протоколов. Он также очень гибок, поскольку в случае если вы хотите, чтобы ваш кэш использовали только некоторые машины, вы можете использовать механизм контроля доступа, встроенный в Apache.

Сам Apt-cacher следует устанавливать только на одной машина - на той, которую вы решите использовать для вашего локального кэша. После этого на всех компьютерах в вашей локальной сети нужно изменить настройки с тем, чтобы все запросы пакетов отправлялись на машину с вашим кэшем, а не непосредственно на сервер пакетов.

Apt-cacher перехватывает запросы на пакеты и отправляет их на сервер пакетов от имени локальных машин, при этом сохраняя пакеты на диске на случай, если другие машины позже запросят тот же самый пакет. После того, как все будет настроено, для установки пакетов не потребуется делать чего либо дополнительно, что отличалось бы от обычной установки пакетов: просто с помощью apt или Synaptic установите пакет и он будет получен из интернета, а затем позже, когда вы его будете устанавливать на других машинах, он будет взят из локального кэша. Все просто!

Установка пакета Apt-cacher

Настройка работающего Apt-cacher состоит из двух этапов: настройка самого кэш сервера, а затем настройка локальных машин с тем, чтобы они его использовали.

Настройка сервера

Во-первых, выберите машину для использования в качестве кэш-сервера. Apt-cacher совсем немного нагружает систему, так что вы можете спокойно запускать его практически на любой машине, которая есть в вашем распоряжении, даже на той, которая обычно используется в качестве рабочей станции. Вероятно, наиболее важно то, чтобы ваш кэш сервер имел фиксированный IP адрес для того, чтобы другие компьютеры, находящиеся в вашей сети, могли его найти, и то, чтобы было достаточно много дискового пространства, поскольку сам кэш может стать довольно большим. Использование диска зависит от того, сколько пакетов у вас хранятся в кэше, так что чем больше различных программ вы запускаете, тем больше места вам нужно. Обычно хватает несколько сотен мегабайт, однако для большого кэша может потребоваться несколько гигабайт.

На машине, которая выбрана для вашего кэша, запустите установку пакета apt-cacher:

$ sudo apt-get install apt-cacher apache

Одновременно также будет установлен сервер Apache плюс несколько других пакетов, если, конечно, все это еще не установлено. Если у вас сервер Apache уже установлен, его необходимо перезапустить:

$ sudo /etc/init.d/apache restart

И все сделано. (Если вы установили Apache после уже после установки Apt-cacher, вам следует выполнить команду sudo dpkg-reconfigure apt-cacher). Вы можете проверить, что установка выполнена должным образом, открыв для этого веб-браузер и перейдя по адресу http://<cache.example.com>/apt-cacher, заменив <cache.example.com> на имя хоста или IP адрес вашего кэш сервера. Если все выполнено правильно, вы увидите информационную страницу, сгенерированную Apt-cacher (см. рис.6-9).

Экран Apt-cacher по умолчанию

Рис.6-9. Экран, показываемый Apt-cacher по умолчанию

Настройка клиента

На клиентских машинах для использования Apt-cacher ничего дополнительно устанавливать не надо; на них нужно изменить списки, по которым они будут брать пакеты, так, чтобы они направляли запросы пакетов на ваш кэш сервер.

Список источников, откуда берутся пакеты, хранится в файле /etc/apt/sources.list (информацию об изменении этого файла смотрите в разделе "Изменение списка репозитариев пакетов" [Совет # 60]). Ниже приведена запись HTTP протокола для репозитария dapper:

deb http://archive.ubuntu.com/ubuntu/ dapper main restricted

В каждой записи для протокола HTTP должен быть адрес кэш сервера, который задается вначале, таким образом предыдущая запись должна измениться приблизительно следующим образом:

deb http://cache.example.com/apt-cacher/archive.ubuntu.com/ubuntu/ dapper main restricted

Как только вы измените все ваши записи, выполните следующую команду:

$ apt-get update

чтобы сообщить машине, что нужно обновить список пакетов, который вы задали. Теперь любые пакеты, которые вы устанавливаете, будут поступать через кэш-сервера.

Параметры конфигурирования

Теперь вы создали работающей Apt-cacher, не меняя никаких конфигурационных настроек на самом кэш сервере. Однако в Apt-cacher есть ряд параметров, которые вы можете установить, отредактировав файл /etc/apt-cacher/apt-cacher.conf. После редактирования файла вам не нужно нечего перезапускать — все изменения сразу вступают в силу.

Конфигурационный файл очень хорошо прокомментирован, так что для ознакомления с подробностями просто прочитайте сам файл. Имеющиеся параметры позволят вам ограничить обращение к кэшу только конкретными диапазонами адресов протоколов IPv4 или IPv6, позволят ограничить доступ только к утвержденным репозитариям программ, а также позволят передавать запросы на прокси-сервер следующего уровня.

Отчет о трафике

Apt-cacher можно настроить так, чтобы он создавал ежедневные отчеты о затраченном трафике. Даже при высоком трафике создание отчетов выполняется очень быстро и выполняется один раз в день, так что этот параметр можно включать без каких-либо негативных последствий для производительности. Для того, чтобы получить доступ к отчету, укажите в вашем браузере адрес http://<cache.example.com>/apt-cacher/report и вы должны увидеть нечто, похожее на рис. 6-10.

Отчет о трафике, выдаваемый Apt-cacher

Рис.6-10. Отчет о трафике, выдаваемый Apt-cacher

В действительности отчет генерируется с помощью скрипта /usr/share/apt-cacher/apt-cacher-report.pl, который запускается с помощью cron-а и записывается в виде HTML отчета в /var/log/apt-cacher/report.html.

Совет по поводу совета

Что делать, если вы хотите, чтобы отчет каждый день отправлялся вам по электронной почте? Поскольку отчет имеет формат HTML, его нужно отправлять как приложение к письму. Для этого можно воспользоваться исключительно гибким почтовым клиентом Mutt. Во-первых, установите пакет mutt:

$ sudo apt-get install mutt

Затем отредактируйте файл /etc/cron.daily/apt-cacher и добавьте к нему в конце следующую строчку:

echo "Apt-cacher report \Qdate\Q" | mutt -a \\
  /var/log/apt-cacher/report.html -s "Apt-cacher report" user@example.com

(Не забудьте заменить user@example.com на адрес вашей электронной почты). Запустите эту команду вручную для того, чтобы проверить, что она работает и заставит Mutt создать почтовый директорий для пользователя, если директорий еще не существует. С этого момента вы будете получать ежедневно сообщения, рассказывающие об эффективности использования вашего Apt-cacher.


Назад Оглавление Вперед

Поделиться: