Это только половина того что можно сделать для изменения кеширования с apt-cache на sqiud. В качестве бонуса к кешированию всего web-трафика вы получите так же возможность прокешировать пакеты .deb. Если вы делаете много обновлений и хотите сэкономить время и трафик — эта статья для вас.
- Найдите машину которая будет сервером.
- Установите squid:
sudo apt-get install squid
- Сконфигурируйте squid отредактировав
/etc/squid/squid.conf
(Этот файл очень большой, так как вероятно самый комментированный за всю историю UNIX)По умолчанию squid не принимает подключения от удаленных хостов, так что требуется изменить одну строку (Сервер в примере не смотрит в интернет):
http_access allow all
#прости меня госпади...
И добавьте то что ниже (Это паттерны на то сколько и как обновлять кеш):
refresh_pattern deb$ 1577846 100% 1577846
refresh_pattern udeb$ 1577846 100% 1577846
refresh_pattern Packages.gz$ 1440 100% 1440
cache_dir ufs /var/spool/squid 15000 2 8
maximum_object_size 409600 KB - Перезапускаем squid:
sudo /etc/init.d/squid restart
- Конфигурируем вашу рабочую машину на использование нового сервера, это можно сделать к примеру через графическую утилиту GNOME Proxy gui (squid весит по умолчанию на 3128 порту так что если вы это меняли — то измените и в нужных параметрах вашей машины), или через http_proxy в вашем окружении, или для apt в /etc/apt/apt.conf:
Acquire::http::Proxy «http://192.168.1.117:3128»
- Смотрим что работает. На сервере выполняем
sudo tail -F /var/log/squid/access.log
для просмотра лога. Теперь на одной из машин делаем apt-get update и upgrade и лог должен будет показать кучуf TCP_MISS строк для каждого скачиваемого вами deb пакета. Теперь идем на вторую машину и делаем тоже самое. Каждый раз на запрос deb пакета будет показано что-то вроде TCP_REFRESH_HIT, которое означает что squid принял запрос и отправляет deb-пакет напрямую на эту машину. Повторяем упражнение для остальных машин. Все работает и для PPA и для других сайтов, откуда вы качаете deb.
Оригинал статьи тут — http://castrojo.wordpress.com/2009/10/27/saving-some-bandwidth-and-the-mirrors-with-squid/