Настройка зеркала репозитория Raspbian
Настройка локального зеркала репозитория Raspbian позволяет ускорить установку пакетов в локальной сети, снизить нагрузку на внешние каналы связи и обеспечить доступ к пакетам даже при отсутствии интернет-соединения. Это особенно полезно для образовательных учреждений, компаний с несколькими Raspberry Pi или для создания резервного источника пакетов.
Настройка зеркала репозитория Raspbian
Описание/Введение: Настройка локального зеркала репозитория Raspbian позволяет ускорить установку пакетов в локальной сети, снизить нагрузку на внешние каналы связи и обеспечить доступ к пакетам даже при отсутствии интернет-соединения. Это особенно полезно для образовательных учреждений, компаний с несколькими Raspberry Pi или для создания резервного источника пакетов.
Требования к системе
Перед началом убедитесь, что ваша система соответствует требованиям.
- Минимальные требования:
- 50 ГБ свободного места на диске
- 2 ГБ оперативной памяти
- Стабильное интернет-соединение
- Рекомендуемые требования:
- 100+ ГБ свободного места
- 4 ГБ оперативной памяти
- SSD диск для лучшей производительности
Установка необходимых пакетов
Установка программного обеспечения для создания зеркала.
- Обновите список пакетов:
1 2
sudo apt update sudo apt upgrade
- Установите необходимые пакеты:
1
sudo apt install apt-mirror nginx apache2-utils
Настройка apt-mirror
Конфигурация основного инструмента для зеркалирования.
- Откройте файл конфигурации apt-mirror:
1
sudo nano /etc/apt/mirror.list - Добавьте базовую конфигурацию:
1 2 3 4 5 6 7
set base_path /var/spool/apt-mirror set run_postmirror 0 set nthreads 20 set _tilde 0 deb http://archive.raspberrypi.com/debian/ bullseye main deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
- Для зеркалирования нескольких версий добавьте:
1 2
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi deb http://archive.raspberrypi.com/debian/ buster main
Создание структуры каталогов
Подготовка файловой системы для хранения зеркала.
- Создайте основную директорию:
1
sudo mkdir -p /var/spool/apt-mirror
- Установите правильные права доступа:
1
sudo chown -R apt-mirror:apt-mirror /var/spool/apt-mirror
- Создайте директорию для веб-сервера:
1
sudo mkdir -p /var/www/html/raspbian
Настройка веб-сервера
Конфигурация Nginx для раздачи пакетов.
- Создайте конфигурационный файл для зеркала:
1
sudo nano /etc/nginx/sites-available/raspbian-mirror - Добавьте конфигурацию:
1 2 3 4 5 6 7 8 9 10 11 12 13
server { listen 80; server_name your-server-domain.local; root /var/www/html/raspbian; autoindex on; location / { try_files $uri $uri/ =404; } access_log /var/log/nginx/raspbian-mirror.access.log; error_log /var/log/nginx/raspbian-mirror.error.log; }
- Включите сайт:
1
sudo ln -s /etc/nginx/sites-available/raspbian-mirror /etc/nginx/sites-enabled/
Запуск процесса зеркалирования
Начальное заполнение зеркала.
- Запустите процесс зеркалирования:
1
sudo apt-mirror -
Процесс может занять несколько часов в зависимости от скорости интернета
- Для мониторинга прогресса используйте:
1
tail -f /var/spool/apt-mirror/var/cron.log
Настройка символических ссылок
Связывание зеркала с веб-сервером.
- Создайте символические ссылки после завершения зеркалирования:
1 2
sudo ln -s /var/spool/apt-mirror/mirror/archive.raspberrypi.com/debian/ /var/www/html/raspbian/archive sudo ln -s /var/spool/apt-mirror/mirror/raspbian.raspberrypi.org/raspbian/ /var/www/html/raspbian/raspbian
- Проверьте доступность через браузер:
1
http://your-server-ip/raspbian
Настройка клиентов для использования зеркала
Обновление источников пакетов на клиентских машинах.
- Создайте резервную копию оригинальных источников:
1 2
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.backup
- Отредактируйте файлы источников:
1
sudo nano /etc/apt/sources.list - Замените URLs на ваш локальный сервер:
1 2
deb http://your-mirror-server/raspbian/raspbian/ bullseye main contrib non-free rpi # deb-src http://your-mirror-server/raspbian/raspbian/ bullseye main contrib non-free rpi - Обновите файл raspi.list:
1
sudo nano /etc/apt/sources.list.d/raspi.list1 2
deb http://your-mirror-server/raspbian/archive/ bullseye main # deb-src http://your-mirror-server/raspbian/archive/ bullseye main
Автоматическое обновление зеркала
Настройка регулярного обновления зеркала.
- Создайте cron задание для автоматического обновления:
1
sudo crontab -e
- Добавьте строку для ежедневного обновления в 2:00:
1
0 2 * * * /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log 2>&1
- Для еженедельного обновления:
1
0 2 * * 0 /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log 2>&1
Мониторинг использования диска
Отслеживание использования дискового пространства.
- Создайте скрипт для мониторинга:
1
sudo nano /usr/local/bin/check-mirror-size.sh - Добавьте содержимое:
1 2 3
#!/bin/bash du -sh /var/spool/apt-mirror/ df -h /var/spool/apt-mirror/
- Сделайте скрипт исполняемым:
1
sudo chmod +x /usr/local/bin/check-mirror-size.sh
Очистка старого содержимого
Управление дисковым пространством зеркала.
- Для очистки устаревших пакетов выполните:
1
sudo apt-mirror --cleanup
- Или используйте встроенную очистку:
1
sudo /var/spool/apt-mirror/var/clean.sh
Настройка аутентификации
Ограничение доступа к зеркалу при необходимости.
- Создайте файл с паролями:
1
sudo htpasswd -c /etc/nginx/.htpasswd username
- Добавьте аутентификацию в конфигурацию Nginx:
1 2 3 4 5
location / { auth_basic "Raspbian Mirror"; auth_basic_user_file /etc/nginx/.htpasswd; try_files $uri $uri/ =404; }
Оптимизация производительности
Улучшение скорости работы зеркала.
- Настройте кэширование в Nginx:
1 2 3 4
location ~* \.(deb|gz|bz2)$ { expires 30d; add_header Cache-Control "public, immutable"; }
- Увеличьте количество потоков в mirror.list:
1
set nthreads 50
Резервное копирование конфигурации
Сохранение настроек зеркала.
- Создайте резервную копию конфигурации:
1
sudo tar -czf /backup/apt-mirror-config-$(date +%Y%m%d).tar.gz /etc/apt/mirror.list /etc/nginx/sites-available/raspbian-mirror
- Экспортируйте список cron заданий:
1
sudo crontab -l > /backup/mirror-cron-backup.txt
Устранение проблем
Решение распространенных проблем.
Проблема: Недостаточно места на диске
1
2
3
4
5
# Проверьте использование диска
df -h
# Очистите кэш apt
sudo apt clean
Проблема: Ошибки синхронизации
1
2
3
4
5
# Проверьте логи
tail -f /var/spool/apt-mirror/var/cron.log
# Проверьте соединение с исходными зеркалами
ping archive.raspberrypi.com
Проблема: Клиенты не могут подключиться
1
2
3
4
5
# Проверьте настройки брандмауэра
sudo ufw status
# Проверьте доступность веб-сервера
curl -I http://localhost/raspbian
Теперь у вас есть полностью функциональное локальное зеркало репозитория Raspbian, которое ускорит установку пакетов в вашей локальной сети и обеспечит резервный источник пакетов на случай проблем с интернет-соединением.