Автор - Салвадессваран Сринивасан (Salvadesswaran Srinivasan)
Если у вас есть несколько компьютеров под управлением Ubuntu, то установка пакетов или обновлений на все из них может потребовать много времени и интернет-трафика, но, к счастью, вы можете раздавать уже скачанные обновления и пакеты всего с одного компьютера. Это возможно благодаря apt-cacher — прокси-серверу для ваших репозиториев. После установки и настройки apt-cacher запускается как сервер в локальной сети, и все остальные компьютеры могут запрашивать все обновления с него, а apt-cacher, в свою очередь, станет отдавать пакеты из своего кэша, если запрошенный пакет уже был скачан, или же скачивает его из интернета, если этот пакет запрашивается впервые и он ещё отсутствует в локальном кэше. Уменьшение нагрузки на интернет-канал пропорционально количеству компьютеров с Ubuntu (либо с любым другим основанным на Debian дистрибутивом).
Следующая информация предполагает, что у вас имеется сеть компьютеров с установленной Ubuntu и что из вашей локальной сети есть доступ к интернету.
Для начала выберите компьютер с достаточным свободным местом на жёстком диске, который бы вы могли использовать в качестве локального репозитория. На него мы установим apt-cacher.
sudo apt-get install apt-cacher
Эта команда установит apt-cacher на компьютер. Теперь необходимо его настроить. Конфигурационный файл находится в /etc/apt-cacher/apt-cacher.conf. Сделайте его резервную копию:
sudo cp /etc/apt-cacher/apt-cacher.conf /etc/apt-cacher/apt-cacher.conf.bak
Затем откройте файл для редактирования:
sudo gedit /etc/apt-cacher/apt-cacher.conf
По умолчанию apt-cacher обслуживает компьютеры с любыми ip-адресами. Но если вы хотите запретить доступ компьютерам не из вашей сети (что более безопасно), то измените параметр allowed_hosts:
allowed_hosts=192.168.1.0/24
Дальше идут два параметра «group» и «user», которые определяют группу и пользователя для запуска приложения apt-cacher. Если вы закомментируете их, то приложение будет запускаться от имени вашего пользователя. В любом случае убедитесь, что приложению доступен для записи каталог кэша, указанный в параметре cache_dir. Затем, если вы хотите сохранять все загруженные пакеты, установите параметр clean_cache в 0, чтобы предотвратить автоматическое удаление пакетов, которые более не доступны в репозитории.
Последняя и самая важная настройка — path_map. Этот параметр связывает репозитории в интернете с локальными виртуальными репозиториями. При этом им надо присвоить понятные имена, чтобы клиентские компьютеры в вашей локальной сети могли к ним обращаться.
path_map = ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu; ubuntu-security security.ubuntu.com/ubuntu; wine wine.budgetdedicated.com/apt; medibuntu packages.medibuntu.org;
Если в дальнейшем вы захотите добавить к указанным выше любой другой репозиторий, вы можете просто дописать их к этому параметру. Например, для подключения репозитория Skype, который располагается на http://download.skype.com/linux/repos/debian, вам следует дописать:
skype download.skype.com/linux/repos/debian;
в конец строки параметра path_map.
Теперь отредактируйте /etc/default/apt-cacher и измените параметр AUTOSTART на 1, чтобы apt-cacher запускался при старте системы. После этого перезапустите apt-cacher командой:
sudo /etc/init.d/apt-cacher restart
Чтобы проверить правильность установки apt-cacher, попробуйте открыть страницу:
в вашем веб-браузере. Если apt-cacher успешно запустился, то вы увидите отчёт.
Теперь вы можете скопировать всё содержимое ваших CD/DVD дисков Ubuntu в ваш локальный репозиторий. При необходимости замените '/media/UbuntuCD' на путь, куда подключен CD или DVD диск.
sudo /usr/share/apt-cacher/apt-cacher-import.pl /media/UbuntuCD
Теперь, когда apt-cacher настроен на работу в качестве локального репозитория, самое время обновить файл sources.list на всех клиентских машинах в сети. Сначала сделайте резервные копии оригинальных sources.list на каждом компьютере:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
затем отредактируйте файл, добавив в него локальный репозиторий:
sudo gedit /etc/apt/sources.list
Скопируйте и вставьте следующий код в sources.list, заменив [IP-АдресВашегоРепозитория] на IP-адрес компьютера с установленным apt-cacher:
## Ubuntu Packages deb http://[IP-АдресВашегоРепозитория]: 3142/ubuntu/ gutsy main restricted multiverse universe deb-src http://[IP-АдресВашегоРепозитория]: 3142/ubuntu/ gutsy main restricted multiverse universe ## Ubuntu Major Bug fixes deb http://[IP-АдресВашегоРепозитория]: 3142/ubuntu-updates/ gutsy-updates main restricted multiverse universe deb-src http://[IP-АдресВашегоРепозитория]: 3142/ubuntu-updates/ gutsy-updates main restricted multiverse universe ## Ubuntu Backports deb http://[IP-АдресВашегоРепозитория]: 3142/ubuntu/ gutsy-backports main restricted universe multiverse deb-src http://[IP-АдресВашегоРепозитория]: 3142/ubuntu/ gutsy-backports main restricted universe multiverse ## Ubuntu Security deb http://[IP-АдресВашегоРепозитория]: 3142/ubuntu-security/ gutsy-security main restricted multiverse universe deb-src http://[IP-АдресВашегоРепозитория]: 3142/ubuntu-security/ gutsy-security main restricted multiverse universe ## Other Repositories deb http://[IP-АдресВашегоРепозитория]: 3142/wine gutsy main deb http://[IP-АдресВашегоРепозитория]: 3142/medibuntu gutsy free non-free
Протестируйте установленный apt-cacher, запустив команду:
sudo apt-get update
на клиентской машине с изменённым sources.list. Если всё настроено верно, то скопируйте изменённый sources.list на все клиентские машины с Ubuntu в локальной сети.