Локальный репозиторий для Ubuntu

Локальный репозиторий для Ubuntu

Возникла необходимость в локальном репо, чтобы при обновлении пакетов не забивать канал интернета. Были протестированы несколько пакетов. О них подробнее.

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

Пример проблемы.

Чтение списков пакетов… Готово
E: Не удалось получить http://repo/ubuntu/dists/disco/main/cnf/Commands-amd64 404 Not Found [IP: 192.168.18.236 80]
E: Не удалось получить http://repo/ubuntu/dists/disco-updates/main/cnf/Commands-amd64 404 Not Found [IP: 192.168.18.236 80]
E: Не удалось получить http://repo/ubuntu/dists/disco-backports/main/cnf/Commands-amd64 404 Not Found [IP: 192.168.18.236 80]
E: Не удалось получить http://repo/ubuntu/dists/disco-security/main/cnf/Commands-amd64 404 Not Found [IP: 192.168.18.236 80]
E: Некоторые индексные файлы скачать не удалось. Они были проигнорированы, или вместо них были использованы старые версии.

Aptly. Так же создает локальную копию репозитория. Проблема возникла в его подписи. Не смотря на свежесгенерированный сертификат в pgp2 софт не его не использует. Да же с указанием ключа вручную. Провозившись день и не найдя ответа я перешел к тестированию другого пакета. Плюсом избыточность функционала: хранение снапшотов из зеркал и их последующая публикация с возможностью откатить, создать дополнительный или объединить — это круто. Но для простого зеркала не нужно.

Apt-Cacher NG. На нем я и остановился.

Плюсы:

  • Удобный Web интерфейс для управления;
  • По-умолчанию кэширует пакеты, а не выкачивает весь репозиторий, что экономит место;
  • Может не кэшировать, а выкачивать пакеты всего репозитория;
  • Есть импорт пакетов

По минусам — мало использовал, дополню в будущем.

Установим его как кеширующий сервер:

sudo apt install apt-cacher-ng

Настроим пароль администратора в файле /etc/apt-cacher-ng/security.conf:

AdminAuth: root:MyPass

Настроим конфиг файл /etc/apt-cacher-ng/acng.conf.

ExTreshold: 30 - сколько дней хранить кэш
PassThroughPattern: .*:443 - для решения проблем с https репозиториями, инорирует их
PrecacheFor: ru.archive.ubuntu.com/ubuntu/dists/disco/*/binary-amd64/Packages* - будут загружены все пакеты Ubuntu disco для архитектуры amd64. Нужна только для Mirroring (включается в веб интерфейсе)

Теперь нужно отредактировать файл /etc/apt-cacher-ng/backends_ubuntu и добавить туда репозитории. В моем случае выглядит так.

http://ru.archive.ubuntu.com/ubuntu/
http://security.ubuntu.com/ubuntu/

Перезапускаем службу:

sudo systemctl restart ctapt-cacher-ng

На клиентской машине выполняем, указав ip или имя сервера:

echo 'Acquire::http::Proxy "http://ip_or_hostname:3142";' > /etc/apt/apt.conf.d/00aptproxy

По адресу http://ip_or_hostname:3142 находится панель администрирования.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *