Сегодня создадим локальный репозиторий операционной системы Astra Linux.
Astra Linux — отечественная операционная система, созданная с прицелом на полную независимость от зарубежных технологий. Её активно внедряют в государственных структурах, на предприятиях оборонного комплекса и в корпоративных инфраструктурах, системах мониторинга крупных ЦОД, там, где особенно важна защита данных и контроль над программной средой. Очень часто на таких объектах у серверов в локальной сети нет доступа к интернету, и установка даже самого простого пакета на астру может вызвать ряд сложностей.
Так как же скачать необходимый пакет и все его зависимости в таком случае. Давайте разберём всё по порядку. Данная инструкция является универсальной и подходит для других типов линукса.
Нам понадобится:
- виртуальная машина с такой же версией линукса, развернутая например в среде Virtual Box;
- переносной жесткий диск или флэшка;
- и немного терпения. Полный репозиторий на момент написания статьи (окт.2025 г.) составляет порядка 40 гБ. Его скачивание займет определённое время.
План следующий:
- Устанавливаем и настраиваем утилиту apt-mirror для скачивания репозитория астры на виртуальной машине с доступом в интернет.
- Выкачиваем с машины, на которой есть доступ к интернету актуальный репозиторий астры с помощью утилиты apt-mirror на переносной диск.
- Копируем выкачанный репозиторий на наш локальный сервер.
- Меняем источники пакетов на сервере в astra linux, и обновляем списки пакетов.
Итак приступим.
Почему мы вообще используем утилиту apt-mirror, почему нельзя просто взять и скачать этот репозиторий как в windows, например единым файлом.
Причина в структуре и механике Debian-подобных репозиториев, на которых базируется Astra Linux.
Главные моменты:
Репозиторий — это не просто «папка с .deb-пакетами». Это связанная структура Packages/Sources, Release, InRelease, Release.gpg, индексы и метаданные, которые должны оставаться консистентными, т.е. целостными. Простое скачивание через wget -r или rsync отдельных файлов нарушает целостность.
В момент, когда мы «тянули бы напрямую», репозиторий может обновляться. Без атомарного зеркалирования мы получаем:
- часть старых пакетов;
- часть уже новых;
- индексы, не соответствующие содержимому.
Это приводит к ошибкам Hash Sum mismatch, Failed to fetch, сломанным зависимостям. APT-клиенты требуют корректного зеркала с подписью Release. Без целостного зеркала они не будут доверять данным.
Apt-mirror решает это:
- качает содержимое целостно и последовательно;
- синхронизирует только различия (экономия трафика);
- сохраняет структуру один-в-один, как на сервере Astra;
- делает задержанную индексацию, пока mirror не догружен полностью;
То есть репозиторий можно скачать «напрямую» только если только мы вручную воспроизведём логику зеркалирования и атомарных обновлений. Аpt-mirror делает это автоматически.
Что ж, начнём:
Подключите ваш переносной диск к виртуальной машине и примонтируйте его. В моём случае точка монтирования моего диска /mnt . На диске созданы папки, структура папок: /mnt/disk/astra-mirror
Далее, устанавливаем утилиту apt-mirror:
sudo apt update
sudo apt install apt-mirror
Создаём конфигурационный файл /etc/apt/mirror.list с нужными ссылками на репозиторий:
sudo nano /etc/apt/mirror.list
Содержимое файла mirror.list следующее:
set base_path /mnt/disk/astra-mirror
set nthreads 20
set _tilde 0
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended 1.7_x86-64 astra-ce
clean https://dl.astralinux.ru/astra/stable/1.7_x86-64
В данном конфиге указано что качать и куда качать. Ссылки на репозиторий астры актуальны на окт.2025 г.
В вашем случае base_path может быть иной, но путь должен указывать на конкретную папку, в которую мы будем складывать файлы репозитория.
Всё, запускаем скачивание командой:
sudo apt-mirror
Файлы должны закачаться на диск, далее:
на оффлайн машине без интернета примонтировать переносной диск, например в /mnt/disk и изменить на ней источники sources.list:
sudo nano /etc/apt/sources.list
Содержимое файла sources.list:
deb [trusted=yes] file:/mnt/disk/astra-mirror/mirror/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64 main contrib non-free
deb [trusted=yes] file:/mnt/disk/astra-mirror/mirror/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main 1.7_x86-64 main contrib non-free
deb [trusted=yes] file:/mnt/disk/astra-mirror/mirror/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update 1.7_x86-64 main contrib non-free
deb [trusted=yes] file:/mnt/disk/astra-mirror/mirror/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended 1.7_x86-64 main contrib non-free
deb [trusted=yes] file:/mnt/disk/astra-mirror/mirror/dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended 1.7_x86-64 astra-ce
Далее, очистить очереди и обновить списки:
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
Всё, можно устанавливать пакеты!
В следующей части, дам инструкцию как использовать скачанный репозиторий другими машинами по локальной сети.