Это старая версия документа.


HOW-TO Apt-Cacher на нескольких ПК

Если у вас есть несколько компьютеров под управлением 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, попробуйте открыть страницу:

http://localhost:3142

в вашем веб-браузере. Если 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 в локальной сети.