Пакет apt-mirror используется для создания локального зеркала репозиториев Debian/Ubuntu. Основные шаги: установить пакет, настроить файл /etc/apt/mirror.list, запустить apt-mirror, а затем подключить локальное зеркало в sources.list.


📘 Подробная инструкция по применению apt-mirror

1. Установка пакета

sudo apt update
sudo apt install apt-mirror

apt-mirror — это Perl‑скрипт, который скачивает пакеты и метаданные из указанных репозиториев Русскоязычная документация по Ubuntu sysadminium.ru.


2. Настройка конфигурации

Файл конфигурации: /etc/apt/mirror.list.

Пример минимального конфига:

############# config ##################
set base_path    /srv/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript  $var_path/clean.sh
set defaultarch  amd64
set nthreads     20
set _tilde 0
############# end config ##############

deb http://deb.debian.org/debian bookworm main
deb http://security.debian.org/debian-security bookworm-security main

clean http://deb.debian.org/debian
  • set base_path — куда сохраняется зеркало.
  • set defaultarch — архитектура (например, amd64).
  • deb строки — аналог sources.list, указывают, какие репозитории зеркалировать.
  • clean — удаляет устаревшие пакеты при обновлении.

3. Запуск зеркалирования

sudo apt-mirror
  • Пакеты будут скачаны в $base_path/mirror.
  • Логи и служебные файлы — в $base_path/var.
  • Процесс может занять часы и сотни гигабайт, в зависимости от выбранных репозиториев Русскоязычная документация по Ubuntu Habr.

4. Автоматизация обновлений

Добавь задачу в cron:

sudo crontab -e

Пример:

0 3 * * * /usr/bin/apt-mirror > /srv/apt-mirror/var/cron.log

Это будет обновлять зеркало каждый день в 3:00 ночи Русскоязычная документация по Ubuntu.


5. Подключение локального зеркала

После скачивания добавь строку в /etc/apt/sources.list:

deb file:/srv/apt-mirror/mirror/deb.debian.org/debian bookworm main
deb file:/srv/apt-mirror/mirror/security.debian.org/debian-security bookworm-security main

Затем обнови индекс:

sudo apt update

6. Дополнительные возможности

  • Можно зеркалировать несколько архитектур (amd64, i386 и др.), но это сильно увеличивает размер.
  • Поддерживается многопоточная загрузка (set nthreads).
  • Можно публиковать зеркало через Apache/Nginx, чтобы использовать его в сети.

Итого:

  1. Установи apt-mirror.
  2. Настрой mirror.list.
  3. Запусти apt-mirror.
  4. Подключи локальное зеркало в sources.list.
  5. Автоматизируй обновления через cron.

Это даст тебе полностью автономный офлайн‑репозиторий для Debian/Ubuntu.

Хочешь, я соберу для тебя готовый пример mirror.list именно под Ubuntu 22.04 LTS amd64, чтобы сразу можно было скачать и использовать?

Sources: Русскоязычная документация по Ubuntu Habr sysadminium.ru

Как подключиться к этому репозиторию из интернета

Чтобы твой локальный репозиторий был доступен по сети (через интернет или локальную LAN), нужно превратить его в обычный HTTP‑репозиторий. Сам apt-mirror только скачивает пакеты, а публикация делается через веб‑сервер.


🔧 Пошаговая настройка

1. Установи веб‑сервер

Наиболее просто — Apache или Nginx:

sudo apt install apache2

или

sudo apt install nginx

2. Создай симлинк или настрой каталог

Допустим, твой репозиторий лежит в:

/home/alex/HDD_4Tb/BaseSoft/SystemUtils/mirror/

Для Apache:

sudo ln -s /home/alex/HDD_4Tb/BaseSoft/SystemUtils/mirror /var/www/html/debian

Для Nginx — добавь в конфиг:

server {
    listen 80;
    server_name your-server-domain;

    location /debian {
        root /home/alex/HDD_4Tb/BaseSoft/SystemUtils/mirror;
        autoindex on;
    }
}

3. Проверь доступность

Открой в браузере:

http://<твой-IP>/debian/

Если видишь структуру каталогов — значит зеркало доступно.

4. Подключи на клиенте

В /etc/apt/sources.list клиента добавь:

deb http://<твой-IP>/debian/deb.debian.org/debian bookworm main
deb http://<твой-IP>/debian/security.debian.org/debian-security bookworm-security main

5. Обнови индекс

sudo apt update

⚡ Советы

  • Если хочешь доступ из интернета, открой порт 80/443 на роутере и настрой доменное имя.
  • Для безопасности лучше использовать HTTPS (через certbot и Let’s Encrypt).
  • Если зеркало большое, подумай о rsync или nginx autoindex для удобного обновления.

Таким образом, твой локальный репозиторий превращается в полноценный HTTP‑зеркало, к которому можно подключаться как к обычному интернет‑репозиторию.

Хочешь, я дам готовый пример конфигурации Apache VirtualHost для публикации именно твоего зеркала Debian?

От alex

Обучаемый.