Рубрики
Debian \ apt \ update \ install \ dpkg

Сервер обновлений apt-mirror

0. Описание

Создание локального репозитория с помощью утилиты apt-mirror

1. Устанавливаем

apt-get  install apt-mirror

2. Настройка apt-mirror


Правим конфигурационный файл /etc/apt/mirror.list:

nano /etc/apt/mirror.list
############# config ##################
# Базовый каталог, в нём будет создано локальное зеркало репозитория Debian
set base_path    /var/spool/apt-mirror

# Пути к файлам зеркала, временным файлам и журналy выполнения 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

# Архитектура, для которой создаётся зеркало. По умолчанию - это архитектура
# системы, на которой работает apt-mirror (amd64,i386 или др.). Менять не ненужно,
# т.к. ниже мы явно укажем и зеркало и архитектуру.
# set defaultarch  <running host architecture>

# Пусть к скрипту постобработки, по-умолчанию отсутствует, пока нам не нужен.
# set postmirror_script $var_path/postmirror.sh

# Не запускать скрипт постобработки
set run_postmirror 0

# Служебные параметры, не 
set nthreads     20
set _tilde 0

############# end config ##############

deb http://httpredir.debian.org/debian stable main
deb-src http://httpredir.debian.org/debian stable main
deb http://httpredir.debian.org/debian stable-updates main
deb-src http://httpredir.debian.org/debian stable-updates main
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main
# jessie-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ stable-updates main
deb-src http://mirror.yandex.ru/debian/ stable-updates main

#clean
clean http://httpredir.debian.org/debian
clean http://security.debian.org
clean http://mirror.yandex.ru/debian

4. теперь запускаем #apt-mirror

#apt-mirror - репозиторий будет создан и закачается куча файлов

5. Настроим автоматическую синхронизацию

Для автоматической синхронизации и очистки зеркал нужно добавить строку в настройки cron и выставить подходящее время. 
Обновление официальных зеркал происходит каждые 6 часов: 3:00,9:00,15:00,21:00. 

Например так:
crontab -e
00 03 * * *     apt-mirror >> /var/log/apt-mirror.log
00 03 * * *     /var/spool/apt-mirror/var/clean.sh >> /var/log/apt-mirror.log

6. Настроим apache

apt-get install apache2 - установим
nano /etc/apache2/sites-available/000-default - отредактируем конфиг 
----------------------------------------

        DocumentRoot  /var/spool/apt-mirror/mirror
        
              Options Indexes FollowSymLinks
              AllowOverride None
              Require all granted
        

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

---------------------------------------

7.Настройка доступа к зеркалу


/mnt/repo/debian/mirror/имя_репозитория  - здесь хранятся зеркала репозиторий и сюда мы настроили апач
chown www-data.www-data /var/spool/apt-mirror/mirror -R

8. подпись репозитория

_______________________________________________________________________________________
Часть с подписью не обязательна. Уже все должно работать! переходим к9 пункту.


Осталось только подписать репозиторий. Если у Вас еще нет gpg ключа, 
то дайте команду gpg --gen-key и следуйте инструкциям. 
Если у Вас уже есть gpg ключ, то следующая команда подпишет ваш репозиторий:

gpg --gen-key - создать ключ
gpg -abs -o $dir/Release.gpg $dir/Release -подписать репозиторий
cd /mnt/repo/debian/mirror/

find -name Release.gpg
./ftp.ru.debian.org/debian/dists/squeeze/Release.gpg
./download.webmin.com/download/repository/dists/sarge/Release.gpg
./backports.debian.org/debian-backports/dists/squeeze-backports/Release.gpg
./security.debian.org/dists/squeeze/updates/Release.gpg
./ftp.debian.org/debian/dists/squeeze-updates/Release.gpg

gpg -abs -o Release.gpg Release
тут ключ
 /root/.gnupg/pubring.gpg
________________________________________________________________________________________

9. установить клиент машину

wget http://sever_name_IP/pubring.gpg
apt-key add pubring.gpg

nano /etc/apt/sources.list
--------------------------
deb http://sever_name_IP/httpredir.debian.org/debian stable main
deb-src http://sever_name_IP/httpredir.debian.org/debian stable main
deb http://sever_name_IP/httpredir.debian.org/debian stable-updates main
deb-src http://sever_name_IP/httpredir.debian.org/debian stable-updates main
deb http://sever_name_IP/security.debian.org/ stable/updates main
deb-src http://sever_name_IP/security.debian.org/ stable/updates main
# jessie-updates, previously known as 'volatile'
deb http://sever_name_IP/mirror.yandex.ru/debian/ stable-updates main
deb-src http://sever_name_IP/mirror.yandex.ru/debian/ stable-updates main
--------------------------

10. Ошибка


решение ошибки W: GPG error: http://download.tuxfamily.org ./ Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 73E6B0FAA42A6CF5

gpg --keyserver wwwkeys.us.pgp.net --recv-keys ключ
gpg --armor --export ключ | apt-key add -
apt-get update

сервера ключей
wwwkeys.at.pgp.net  wwwkeys.ch.pgp.net wwwkeys.cz.pgp.net wwwkeys.de.pgp.net wwwkeys.es.pgp.net
wwwkeys.eu.pgp.net wwwkeys.nl.pgp.net wwwkeys.pgp.net wwwkeys.uk.pgp.net wwwkeys.us.pgp.net
pgpkeys.pca.dfn.de keyring.debian.org keys.iif.hu keys.pgpi.net keys.se.linux.org
keyserver.aarg.net keyserver.bu.edu keyserver.kjsl.com keyserver.linux.it
keyserver.noreply.org keyserver.topnet.de