Пакет 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, чтобы использовать его в сети.
✅ Итого:
- Установи
apt-mirror. - Настрой
mirror.list. - Запусти
apt-mirror. - Подключи локальное зеркало в
sources.list. - Автоматизируй обновления через
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?