APT−CACHER

НАЗВАНИЕ
ОБЗОР
ОПИСАНИЕ
ОПЦИИ КОМАНДНОЙ СТРОКИ
ИСПОЛЬЗОВАНИЕ
УСТАНОВКА СЕРВЕРА
Режим сервера
Режим CGI
ОПЦИИ НАСТРОЙКИ СЕРВЕРА
НАСТРОЙКА КЛИЕНТА
ВОПРОСЫ И ОТВЕТЫ
ОГРАНИЧЕНИЯ
СИГНАЛЫ
ФАЙЛЫ
АВТОР
АВТОР ПЕРЕВОДА

НАЗВАНИЕ

apt−cacher − кэширующий прокси для пакетов Debian

ОБЗОР

Сервер:
apt−cacher
−h|−−help −i|−d −c файл_конфигурации −p PID−файл −r каталог −R повторы опция_конфигурации=значение

Клиент:
http://apt−cacher.server:3142[/apt−cacher]/{зеркало}/{дистрибутив}

ОПИСАНИЕ

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

В дополнение к проксированию и кэшированию HTTP−запросов, apt−cacher может проксировать и кэшировать FTP− и HTTPS−запросы GET/HEAD, в Debian неисправны SOAP запросы и проксирование (но не кэширование) HTTPS−запросов CONNECT.

ОПЦИИ КОМАНДНОЙ СТРОКИ

−c файл_конфигурации

Указывает файл конфигурации, отличный от файла /etc/apt−cacher/apt−cacher.conf, используемого по умолчанию.

−d

Режим самостоятельной работы сервера. Сервер отделяется от терминала и работает в фоновом режиме.

−h, −−help

Вывести краткую справку по использованию программы.

−i

Режим работы с вызовом из inetd: используется только для вызова сервера из /etc/inetd.conf

−p PID−файл

Записывать идентификатор работающего процесса в этот файл.

−r каталог

Экспериментальная опция для смены корневого каталога процесса на указанный.

−R повторы

Количество попыток захвата прослушиваемого порта.

−v, −−version

Отобразить версию и завершить работу.

опция_конфигурации=значение

Заменить значения из конфигурационного файла. Может быть задана несколько раз.

ИСПОЛЬЗОВАНИЕ

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

apt−cacher может быть установлен для работы в качестве самостоятельного сервера (что предпочтительно) или в качестве сценария CGI на веб−сервере, таком как Apache. Когда клиент (apt−get(1), aptitude(8), synaptic(8) и т.п.) запрашивает пакет от кэширующего компьютера, запрос обрабатывается apt−cacher’ом, который проверяет наличие пакета в кэше. Если пакет найден, он возвращается клиенту немедленно. Если пакета нет в кэше или для него имеется обновление, то пакет скачивается с указанного зеркала. По мере скачивания пакет одновременно передаётся клиенту, а также сохраняется в локальном кэше для последующего использования.

Не нужно устанавливать apt−cacher на клиентские компьютеры вашей сети, чтобы они могли пользоваться кэшем сервера. Необходимо на каждом клиентском компьютере изменить настройки, чтобы заставить их пользоваться кэшем сервера. Обратитесь к разделу НАСТРОЙКА КЛИЕНТА ниже, чтобы узнать как это сделать.

УСТАНОВКА СЕРВЕРА

apt−cacher может быть установлен на сервер разными способами. Рекомендуется запускать программу в режиме сервера. Это даст наилучшую производительность и минимальный объём использованной памяти.

Режим сервера

Самостоятельный сервер:
Отредактируйте файл /etc/default/apt−cacher и пропишите AUTOSTART=1, затем запустите (от имени пользователя root) следующую команду:

/etc/init.d/apt−cacher start

чтобы запустить сервер.

Сервер, вызываемый из inetd:
Отредактируйте /etc/inetd.conf и добавьте следующую строку:

3142 stream tcp nowait www−data /usr/sbin/apt−cacher apt−cacher −i

Перезапустите или отправьте сигнал SIGHUP суперсерверу inetd после сохранения файла. Этот способ подходит в тех случаях, когда вы не хотите чтобы сервер был запущен постоянно.

В любом из режимов сервера клиенты смогут получить к нему доступ по адресу http://сервер−apt−cacher:порт/

ЗАМЕЧАНИЕ: в режиме inetd не производятся проверки ограничения доступа, поэтому опции allowed_hosts и denied_hosts не действуют. Ограничение доступа может быть реализовано с помощью программы−посредника inetd или tcpd. Обратитесь к inetd.conf(5) и hosts_access(5) за более подробной информацией.

Режим CGI

Этот режим устарел и не рекомендуется для долгосрочного использования, поскольку режим оказывает заметное влияние на производительность сети и скорость сервера. Для его использования нужен веб−сервер с поддержкой CGI. Клиенты смогут получить доступ по адресу http://apt−cacher.server[:порт]/cgi−bin/apt−cacher/.

Миграцию с устаревшего режима CGI можно упростить при помощи следующих опций конфигурации:
cgi_advise_to_use []

Это настраиваемое сообщение об ошибке, которое используется для информирования клиентов об использовании альтернативы CGI.

cgi_redirect []

Если эта опция указана, её значение задаёт абсолютный URL для перенаправления любых CGI−запросов. Она может использоваться для бесшовного перенаправления CGI−запроса к экземпляру apt−cacher’а, запущенного через INETD или в качестве самостоятельного демона.

ОПЦИИ НАСТРОЙКИ СЕРВЕРА

apt−cacher использует файл конфигурации для настройки важных опций. Есть также несколько дополнительных опций командной строки, управляющих поведением сервера. Обратитесь к разделу ОПЦИИ КОМАНДНОЙ СТРОКИ выше.

По умолчанию используется файл конфигурации /etc/apt−cacher/apt−cacher.conf. Он читается каждый раз при запуске сервера, при исполнении CGI или при вызове сервера из inetd. Однако самостоятельный сервер необходимо перезапускать или перезагружать с помощью сценария инициализации, чтобы он перечитал свою конфигурацию. Работающий сервер перечитывает файл конфигурации при получении сигнала SIGHUP (обратитесь к разделу СИГНАЛЫ ниже).

Вместо редактирования файла конфигурации можно править фрагменты конфигурации, расположенные в каталоге conf.d рядом с главным файлом конфигурации, то есть в каталоге ’/etc/apt−cacher/conf.d/’. Файлы в этом каталоге заменяют значения по умолчанию и могут иметь произвольное имя. Они читаются при помощи семантики glob(7): в порядке возрастания кода ASCII без учёта регистра, пропуская файлы, имена которых начинаются с точки. Также игнорируются файлы резервных копий, оканчивающиеся на ’~’ и любые файлы, оканчивающиеся на ’.disabled’ или ’.dpkg−{old,new,dist,tmp}’. Повторяющиеся настройки, прочитанные позже, перекрывают действие предыдущих.

Каждая строка этого файла имеет следующий вид:

опция_конфигурации = значение

Длинные строки можно поделить на несколько строк, вставляя ’\’ перед символом новой строки. Пробельные символы игнорируются. Строки, начинающиеся с ’#’, считаются комментариями и также игнорируются. Если одной и той же опции значение присваивается несколько раз, действует только последнее значение. Для логических опций 0 означает "отключено", а любые другие целые числа означают "включено". Опции, которые могут принимать списки, используют для разделения элементов списка знак ’;’ или ’,’. Чтобы использовать этот символ в элементе списка, его нужно заэкранировать при помощи ’\’.

Опции, доступные в файле конфигурации (и их значения по умолчанию):

Универсальные опции
admin_email [root@localhost]

Почтовый адрес администратора, который будет указываться на странице информации и в отчётах о трафике.

allowed_locations

Разрешить доступ только к указанным вышестоящим зеркалам. Запрошенный адрес должен совпасть с элементом этого списка, чтобы доступ был разрешён. Часть адреса, ссылающаяся на сам сервер apt−cacher (http://apt−cacher.server:порт[/apt−cacher]/) игнорируется. Шаблон начинается непосредственно за ней. Если в опции используется ’%PATH_MAP%’, этот шаблон будет заменён ключами из опции path_map setting. Учтите, что эта настройка содержит строки, а не регулярные выражения.

allowed_ssl_locations []

Разрешить только проксирование HTTPS/SSL CONNECT к узлам или IP−адресам, совпадающим с элементами этого списка.

allowed_ssl_ports [443]

Разрешить только проксирование HTTPS/SSL CONNECT на порты, совпадающие с элементами списка. Добавление дополнительных элементов в список может привести к значительному увеличению угрозы безопасности. НЕ ДЕЛАЙТЕ этого, если вы не полностью понимаете последствий.

cache_dir [/var/cache/apt−cacher]

Каталог, в котором apt−cacher будет сохранять локальные копии всех запрошенных пакетов. Он может занять многие сотни мегабайт, поэтому убедитесь в том, что в соответствующем разделе имеется достаточно свободного места. ЗАМЕЧАНИЕ: каталог кэша содержит некоторые подкаталоги для правильного управления хранилищем. Если вы захотите создать свой каталог, воспользуйтесь сценарием /usr/share/apt−cacher/install.pl или используйте изначально созданный кэш в качестве примера.

concurrent_import_limit [Количество ядер центрального процессора из
/proc/cpuinfo или 0
]

Импорт новой контрольной суммы может вызвать высокое использование CPU на медленных системах. Эта опция задаёт лимит количества индексных файлов, которые импортируются одновременно, ограничивая таким образом среднюю загрузку процессора, но, возможно, делая дольше процесс импорта. Оставьте не заданным или задайте 0 для снятия ограничений.

checksum [0]

Переключает проверку контрольной суммы кэшированных файлов. Проверка контрольной суммы замедляет ответы apt−cacher’а на запросы файлов, т.к. они должны быть целиком скачаны перед проверкой целостности. Это замедление может быть предотвращено заданием значения ’lazy’, в этом случае файлы будут передаваться по мере их получения, а проверены позднее. Требуется, чтобы был установлен пакет libberkeleydb−perl.

checksum_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)), совпадающее с URL всех индексных файлов, контрольные суммы из которых импортируются в базу данных, если включен режим проверки контрольных сумм.

clean_cache [1]

Предписывает удалять устаревшие версии пакетов из вашего кэша ежедневно. Вы можете проверить выполнение этого предписания с помощью команды

/usr/share/apt−cacher/apt−cacher−cleanup.pl −s

которая просто покажет, что будет сделано с содержимым кэша. Пакет определённой версии будет считаться устаревшим только если ни одно из используемых пространств имён, дистрибутивов (stable, testing и т.п.) или архитектур, ссылается на него. Вполне безопасно оставить эту опцию включенной.

curl_idle_timeout [120]

Максимальное время в секундах, которое библиотека libcurl будет ожидать, простаивая, прежде чем завершит работу.

curl_ssl_insecure []

Если эта опция установлена в 1, HTTPS−запросы GET (которые небезопасны, поскольку передача с прокси к клиенту не проверяема) будут ещё менее безопасны, поскольку libcurl пропускает проверку вышестоящего партнёра−источника. Не стоит использовать эту опцию. Проксирование HTTPS CONNECT более безопасно.

curl_throttle [10]

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

data_timeout [120]

Время в секундах, через которое запрос будет завершён, если от вышестоящего источника не были приняты данные. Эта опция должна использоваться под именем fetch_timeout, однако старое имя по−прежнему поддерживается в целях обратной совместимости.

debug [0]

Опция, включающая режим отладки. Отключена по умолчанию. При включении в журнал ошибок будет записываться большее количество дополнительной отладочной информации. Эта опция может привести к сильному разрастанию журнала ошибок, поэтому используйте её только для поиска неполадок. Путём увеличения параметра может быть получена дополнительная информация от libcurl. Соответствие между этой опцией и curl_infotype следующее:

1

CURLINFO_TEXT

2

CURLINFO_HEADER_IN

3

CURLINFO_HEADER_OUT

4

CURLINFO_DATA_IN

5

CURLINFO_DATA_OUT

6

CURLINFO_SSL_DATA_IN

7

CURLINFO_SSL_DATA_OUT

Обратитесь к разделу CURLOPT_DEBUGFUNCTION на странице руководства curl_easy_setopt(3) за более подробной информацией.

disk_usage_limit []

Необязательный максимальный объём в байтах каталога кэша, имя которого указано в cache_dir. Единицы (k, KiB, M, MiB и т.п.) распознаются таким же образом, как и опция limit ниже.

distinct_namespaces [0]

Установите в 1, чтобы включить поддержку кэширования различных дистрибутивов (например, Debian и Ubuntu) из единого экземпляра apt−cacher. Если включена, файлы пакетов сохраняются в подкаталог, имя которого получено из соответствующего ключа path_map или из части URL, предшествующей ’pool’ или ’dists’. Обычно это ’debian’, ’ubuntu’ или ’security’. Этот механизм защищает от путаницы дистрибутивов.

Если эта опция включена, любое существующее пространство имён пакетов, которым не соответствует подкаталог каталога cache_dir, будет удалено apt−cacher−cleanup.pl. Если нужно сохранить их и импортировать в их в правильное пространство имён, то запустите (от имени root):

/usr/share/apt−cacher/apt−cacher−import.pl −u {каталог_кэша}/packages

Если нужно ограничить возможные пространства имён, обратитесь к path_map.

expire_hours [0]

Насколько долго в часах должны кэшироваться файлы Package и Release, прежде чем они начнут считаться устаревшими и потребуется их повторное скачивание. Настройка 0 означает, что актуальность этих файлов определяется при каждом доступе сравнением отметок о времени в заголовках HTTP с отметками времени локальных файлов. Эта настройка считается устаревшей, поскольку проверка HTTP−заголовка и отправка запросов If−Modified более эффективны.

generate_reports [1]

Указывает создавать отчёты по трафику ежедневно. Отчёты по трафику можно получить, перейдя в браузере по адресу

http://apt−cacher.server:3142/report/ [в режиме сервера]

или

http://сервер−apt−cacher[:порт]/apt−cacher/report/ [в режиме CGI].

group [www−data]

Эффективный идентификатор группы, который будет использоваться после открытия порта.

http_proxy []

apt−cacher может передавать все свои запросы на внешний HTTP прокси−сервер, например на Squid. Опция может быть очень полезной при использовании с теми провайдерами, которые блокируют порт 80 и требуют, чтобы весь трафик проходил через их прокси−сервер. Опция принимает URI−адрес в виде:

[протокол://][пользователь[:пароль]@]узел_сети[:порт]

Протокол по умолчанию − http, а порт по умолчанию − 1080.

http_proxy_auth []

Иногда внешний HTTP прокси−сервер для получения полного доступа требует аутентификацию. Формат этой опции такой: ’имя_пользователя:пароль’, например: ’proxyuser:proxypass’. Эта опция устарела. Настройки для аутентификации на прокси−сервере указывается в http_proxy, в составе адреса URI.

index_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)), совпадающее с именем файла в URL всех индексных файлов (файлов, которые однозначно идентифицируются их полным путём и свежесть которых нужно проверять).

installer_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)) которое совпадает с именем файла в URL всех файлов, используемых Aptitude, Apt, инсталлятором Debian/Ubuntu или Live−системы Debian (файлы, однозначно идентифицируемые их путём, но не требующие проверки на свежесть). Внутри него элемент ’%VALID_UBUNTU_RELEASE_NAMES%’ будет раскрываться в список настроенный в опции ubuntu_release_names, как альтернатива регулярному выражению.

interface []

Указывает особый интерфейс, используемый для исходящих подключений. Может быть именем интерфейса, IP−адресом или именем узла. Если не указано, используется маршрут по умолчанию.

libcurl []

Это список опций для библиотеки libcurl. Каждый элемент состоит из опции curl_easy_setopt(3) (без префикса CURLOPT_) и желаемого значения. Например:

libcurl = dns_cache_timeout 300, maxredirs 10, noproxy localhost;

Соблюдайте осторожность. Apt−cacher зависит от библиотеки libcurl, работающей ожидаемым образом. Можно легко нарушить работу apt−cacher’а неправильной настройкой libcurl.

limit [0]

Ограничение скорости задаёт максимальную скорость в байтах в секунду, используемую при получении файлов от вышестоящих зеркал. Можно использовать множители в системе СИ (’k’, ’M’, ’G’ и т.п.) для указания кратности 1000 или ’KiB’, ’MiB’, ’GiB’ и т.п. для кратности 1024. Устаревшие суффиксы на основе синтаксиса wget(1) интерпретируются в целях обратной совместимости, но не должны использоваться в новых конфигурациях. Воспользуйтесь 0 для снятия ограничений. По умолчанию эта опция действует на каждое отдельное соединение libcurl. Чтобы ввести общее ограничение, воспользуйтесь limit_global.

limit_global [0]

Если задана, задаёт общее ограничение скорости. Библиотека libcurl не имеет встроенной поддержки общего ограничения, поэтому реализуется простым делением на общее количество загрузок. Поскольку нельзя поменять пропускную способность динамически, она освобождается лишь в моменты простоя или завершения загрузки. Если требуется точное управление пропускной общей способностью, не используйте эту опцию, воспользуйтесь лучше средствами формирования трафика.

log_dir [/var/log/apt−cacher]

Каталог, используемый для хранения файлов журналов доступа, ошибок и файлов с отчётами о трафике. Журнал доступа хранит записи обо всех удачных запросах пакетов, вне зависимости от того был ли запрос удовлетворён из кэша. В журнале доступа хранится отметка времени, IP−адрес запрашивающего компьютера, размер переданного пакета, название пакета. Журнал ошибок хранит записи о существенных сбоях, а также используется для хранения отладочных сообщений, если директива debug имеет значение 1. Режим отладки переключается на противоположный отправкой сигнала SIGUSR1 (обратитесь к разделу СИГНАЛЫ ниже).

Эта опция прежде называлась ’logdir’, но была переименована в целях единообразия. logdir по−прежнему распознаётся, но не должна использоваться в новых инсталляциях.

max_loadavg []

Если задана, ограничивает единицей среднюю нагрузку за минуту для попыток apt−cacher обработать соединение от клиента.

offline_mode [0]

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

package_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (обратитесь к странице руководства perlre(1)), которое совпадает с именем файла URL всех файлов пакетов (файлы, которые однозначно идентифицируются внутри дистрибутива именем файла).

path_map []

Схема отображения адресов, которая конвертирует первую часть адреса после имени сервера apt−cacher (ключ) в адрес удалённого зеркала. Например, если вы задали

path_map = debian ftp.debian.org/debian

то при обращении к

http://сервер−apt−cacher:3142/debian/dists/stable/Release

на самом деле вы обратитесь к

http://apt−cacher.server:3142/ftp.debian.org/debian/dists/stable/Release

Если установлено значение distinct_namespaces, то можно задавать раздельно соответствие кэша и дистрибутива. Например:

path_map = debian ftp.debian.org/debian; ubuntu archive.ubuntu.com/ubuntu

Для каждого отображения можно задать несколько зеркал. Они будут использоваться по порядку в случае ошибки или недоступности предыдущего. Например:

path_map = debian ftp.uk.debian.org/debian ftp.debian.org/debian ;

Все ключи из path_map должны быть указаны в allowed_locations, если последняя опция используется. Для упрощения можно воспользоваться сокращением ’%PATH_MAP%’.

Есть две внутренних настройки path_map для серверов журналов изменений Debian и Ubuntu, которые будут объединены в указанной конфигурации:

debian−changelogs packages.debian.org metadata.ftp−master.debian.org; ubuntu−changelogs changelogs.ubuntu.com

Они могут быть заменены указанием зеркала для этого ключа, или удалены указанием ключа без зеркал.

pdiff_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)), совпадающее с pdiff−файлами APT. Это сценарии ed(1), которые APT использует для правки файлов индексов вместо повторного скачивания свежего файла целиком.

return_buffer_size [1048576]

Размер буфера, который используется для чтения при возврате файла через медленный цикл чтения/записи. По умолчанию − 1MB. Можно настраивать его размер для увеличения скорости, жертвуя увеличением потребления памяти, и наоборот. По умолчанию файлы возвращаются при помощи sendfile(2), что намного быстрее и не требует буфера, настраиваемого этой опцией.

reverse_path_map [1]

Эта опция включает обратное отображение запрошенного URL в ключ path_map. Она помогает предотвратить наличие нескольких копий одного и того же файла в кэше под разными именами.

skip_checksum_files_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)), совпадающего с именем файла URL, для которого не производится проверка контрольной суммы. Отметим, что все файлы, совпадающие с installer_files_regexp автоматически пропускаются и могут не учитываться в этой опции.

soap_url_regexp [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Регулярное выражение Perl (perlre(1)), совпадающее с URL вышестоящего источника для запросов apt−listbugs(1).

apt−listbugs(1) выполняет запросы к серверу ошибок Debian с помощью запросов SOAP POST. Они не попадают в кэш, а просто передаются по требованию.

supported_archs [см. значение по умолчанию в
/etc/apt−cacher/apt−cacher.conf
]

Список поддерживаемых архитектур, которые разрешены в именах файлов. Значения ’all’ и ’any’ автоматически добавляются к списку, который потом подставляется в %VALID_ARCHS% в *_files_regexp.

use_proxy use_proxy_auth [устарело]

При помощи этих опций можно включить или отключить использование внешнего прокси−сервера и данных для аутентификации на нём. Эти настройки в настоящее время игнорируются, но если настроен вышестоящий прокси сервер, он будет использоваться.

use_sendfile [Sys::Syscall::sendfile_defined()]

По умолчанию, если в системе доступен sendfile(2), он используется для возврата файлов клиенту и более эффективен по сравнению с чтением/записью. По умолчанию, результат обнаружения, возвращаемый Sys::Syscall::sendfile_defined(), может быть заменён.

user [www−data]

Эффективный идентификатор пользователя, который будет использоваться после открытия порта.

Опции режима самостоятельного сервера
allowed_hosts []

Если ваш сервер apt−cacher напрямую подключен к сети Интернет, и вы беспокоитесь, что кто−то чужой будет получать с него пакеты, вы можете указать диапазон IP−адресов, которым разрешено пользоваться сервером. Локальный узел (127.0.0.1/8, ::1) разрешён всегда, другие адреса должны совпасть с allowed_hosts и не совпасть с denied_hosts, чтобы получить разрешение пользоваться кэшем. Это может быть один IP−адрес, список IP−адресов, IP−сеть с маской, диапазон IP−адресов, доменное имя или ’*’, если нужно разрешить доступ для всех. Обратитесь к файлу конфигурации по умолчанию за более подробным описанием опции и примерами.

allowed_hosts_6

Устаревшая опция, аналогичная allowed_hosts, но для клиентов IPv6. allowed_hosts теперь принимает адреса IPv6.

daemon_addr []

Сервер может ограничить прослушивание только определённым локальным IP−адресом (или адресами). Если не настроено, сервер будет ожидать подключений на всех доступных адресах. Один адрес или список IP−адресов. Используйте осторожно.

daemon_port [3142]

Прослушиваемый TCP−порт.

denied_hosts

Опция, противоположенная опции allowed_hosts. Исключает узлы из списка разрешённых узлов. Не используется в режиме сервера, вызываемого из inetd.

denied_hosts_6

Устаревшая опция, аналогичная denied_hosts, но для клиентов IPv6. denied_hosts теперь принимает адреса IPv6.

request_empty_lines [5]

Количество допустимых пустых строк, прежде чем входящее соединение будет закрыто.

request_timeout [10]

Максимальное время в секундах, в течение которого будет ожидаться поступление входящего запроса, прежде чем соединение будет закрыто.

НАСТРОЙКА КЛИЕНТА

Есть два различных способа настройки клиентов на использование кэша apt−cacher. Убедитесь, что вы не пользуетесь смесью обоих способов. Одновременное изменение настроек прокси−сервера и адресов зеркал может привести к неприятным последствиям.
Доступ к кэшу, как к зеркалу

Для использования кэша этим способом отредактируйте /etc/apt/sources.list на каждом клиенте и вставьте адрес сервера apt−cacher перед каждой строчкой deb/src. Этот режим для связи с вышестоящим источником использует только протокол HTTP.

Например, если у вас имеется строка:

deb http://ftp.debian.org stable main

измените её на

deb http://сервер−apt−cacher[:порт]/ftp.debian.org stable main [режим сервера]

или

deb http://сервер−apt−cacher[:порт]/apt−cacher/ftp.debian.org stable main [режим CGI]

Доступ к кэшу, как к прокси

Для клиентов, использующих кэш этим способом, установите сервер apt−cacher в качестве прокси−сервера на каждом из клиентов, настройкой адреса прокси−сервера в apt.conf. Например:

Acquire::http::Proxy "http://apt−cacher.server:port";

За подробностями обратитесь к apt.conf(5).

Не рекомендуется настраивать переменную окружения http_proxy, поскольку это может подействовать на широкий круг различных программ, использующих различные адреса. apt−cacher не работает в качестве прокси−сервера общего назначения!

В этом режиме apt−cacher поддерживает HTTP, FTP, HTTPS CONNECT, HTTPS GET и проксирование протокола ошибок Debian SOAP.

ВОПРОСЫ И ОТВЕТЫ

В: Могу ли я просто скопировать некоторые файлы .deb в каталог кэша, чтобы кэш работал ожидаемым образом?

О: Почти! Требуется небольшая дополнительная работа, чтобы сделать его пригодным для использования и доступным из кэша.

Первое: наряду с файлами .deb apt−cacher хранит HTTP−заголовки, отправленные сервером. Если вы скопируете .deb прямо в каталог хранилища, не добавив эти файлы, получение пакета завершится ошибкой.

К счастью, теперь в поставке apt−cacher имеется специальный вспомогательный сценарий, позволяющий сделать необходимые действия. Просто поместите файлы .deb в каталог /var/cache/apt−cacher/import (или в каталог с именем ’import’ внутри того каталога, где находится кэш), и запустите /usr/share/apt−cacher/apt−cacher−import.pl (вы можете указать альтернативный исходный каталог, указав его в качестве первого параметра). Сценарий обработает все найденные файлы в этом каталоге и переместит их в нужное место, создав файлы признака и заголовков. Запустите сценарий с опцией "−h", чтобы получить более подробную информацию об использовании дополнительных возможностей − сценарий может работать в рекурсивном режиме поиска файлов, создавая ссылки на файлы, находящиеся в другом месте файловой системы.

Второе: если включена операция ежедневной очистки (смотри опцию clean_cache выше) и в файле Packages.gz (или .bz2) отсутствуют ссылки на новые файлы, то файлы пакетов вскоре будут удалены. С другой стороны, если потенциальные клиенты, желающие скачать эти пакеты хотя бы раз выполнят команду "apt−get update" с использованием apt−cacher, нет причин для беспокойства.

Q: У меня есть неправильный/повреждённый файл в кэше, как его удалить?

A: Это можно сделать несколькими способами:

1)

В каждом из режимов демона, apt−cacher старается работать с кэшем корректно и обрабатывает заголовки Cache−Control и Pragma. Файл можно принудительно обновить задав в запросе Cache−Control: no−cache. Простейший способ сделать это заключается в указании опции −−no−cache команде wget(1). Например:

wget −O/dev/null −−no−cache http://localhost:3142/debian/dists/stable/Release

2)

Включить проверку контрольных сумм кэшированных файлов при их получении.

3)

Подождать, когда отработает apt−cacher−cleanup.pl (он должен удалить некорректные файлы).

4)

Вручную удалить этот файл из каталога /var/cache/apt−cacher/packages.

В: Зависит ли создание ежедневных отчётов и очистка кэша от того, запущен ли apt−cacher в режиме сервера или нет?

О: Нет, регулярные работы по обслуживанию кэша выполняются независимо от работы сервера. Они вызываются из планировщика cron(8) и используют только неизменные файлы вроде журналов, кэшированных файлов индексов и списка файлов в каталоге. Однако, apt−cacher должен быть настроен правильно, поскольку очистка запускается им независимо (в режиме inetd) от обновления файлов Packages/Sources.

Q: Можно ли использовать в файле конфигурации имена узлов?

A: DNS−имена узлов можно использовать начиная с версии 1.7.0.

В отличие от некоторых программ вроде Apache, управление доступом немного отличается, поскольку нет способа задать порядок проверки. Вместо этого, узел клиента проверяется обоими фильтрами, allowed_hosts и denied_hosts. Возможны следующие комбинации: allowed_hosts=* и пустая denied_hosts, тогда разрешён каждый узел; allowed_hosts=<список_IP> и пустая denied_hosts, тогда разрешаются только определённые узлы; allowed_hosts=* и denied_hosts=<список_IP>, тогда разрешается любой узел, за исключением указанных в denied_hosts; allowed_hosts=<список_IP> и denied_hosts=<список_IP>, тогда принимаются только клиенты из allowed_hosts, за исключением указанных в denied_hosts. Пустая опция allowed_hosts блокирует доступ полностью (за исключением локального узла). Опция denied_hosts не должна иметь значение "*", воспользуйтесь пустой allowed_hosts, если вам нужно запретить доступ для всех.

В: generate_reports: каким образом можно просмотреть отчёты, в зависимости от запущенного веб−сервера? Они доступны только если apt−cacher ожидет подключений на порту 80?

Отчёт создаётся сценарием (запускаемым из планировщика задач cron, смотри выше), который сохраняет отчёт в файл $log_dir/report.html. Вы можете получить к нему доступ, указав "/report" в строке адреса. Если apt−cacher работает в режиме CGI, то адрес для просмотра отчёта в браузере будет http://сервер−apt−cacher[:порт]/apt−cacher/report/.

ОГРАНИЧЕНИЯ

apt−cacher в настоящее время обрабатывает только передачу GET−запросв к источникам HTTP, FTP и HTTPS. Поддержка других способов доступа (ssh, rsync) в настоящее время не планируется.

СИГНАЛЫ

apt−cacher обрабатывает следующие сигналы:

HUP

Заставляет перечитать файл конфигурации.

USR1

Меняет режим вывода отладочных сообщений в /var/log/apt−cacher/error.log на противоположный.

ФАЙЛЫ

/etc/apt−cacher/apt−cacher.conf

Главный конфигурационный файл.

/etc/apt−cacher/conf.d/

Каталог для фрагментов конфигурации.

/var/cache/apt−cacher/

Рабочий каталог/каталог кэша.

/var/log/apt−cacher

Каталог журналов, ротируемых при наличии logrotate(8).

/var/log/apt−cacher/report.html

Страница отчёта, создаваемая вспомогательным сценарием.

АВТОР

apt−cacher изначально был написан Ником Эндрюсом (Nick Andrews) <nick@zeta.org.au>. Эта страница руководства изначально написана Джонатаном Оксером (Jonathan Oxer) <jon@debian.org> для системы Debian GNU/Linux (но может использоваться другими). Пакет сопровождался Эдуардом Блохом (Eduard Bloch) <blade@debian.org>, и в настоящее время сопровождается Марком Хиндли (Mark Hindley) <mark@hindley.org.uk>.

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.