How-To среда: Создание локального зеркала репозитория
29.08.2007

Если у вас много систем Fedora (даже если они на виртуальной машине), вы можете ускорить обновление систем, создав локальное зеркало репозитория. Это позволит вам один раз скачать все пакеты для всех ваших систем вместо того, чтобы скачивать их на каждой системе.

Для этого вам потребуется система с большим дисковым пространством в разделе /var (100GB хватит) и пакеты rsync и httpd.

Сначала создайте скрипт для создания и обновления своего репозитория:
#!/bin/bash
ARCH=i386 # Укажите архитектуру вашей системы
DIR=/var/www/html/fedora/updates/$ARCH/
URL=rsync://mirror/directory/ # Смотри ниже
mkdir -p $DIR
cd $DIR || exit
rsync
--recursive --delete -v $URL . # Не перепутай ничего тут!

Предупреждение: использования rsync с опцией --delete может удалить все файлы, если вы неправильно укажите директорию.

Сохраните скрипт и сделайте его исполняемым (chmod u+rx scriptname). После запуска сприпт скопирует репозиторий в /var/www/html/fedora/updates/$ARCH.

Для задания переменной URL, просмотрите список зеркал здесь http://mirrors.fedoraproject.org/publiclist/Fedora/7/ и выберите одно из rsync зеркал. Проверить его работоспособность можно командой:

$ rsync -v rsync://selectedhost/

Вы должны увидеть содержание root rsync директории на удаленном компьютере. Вы должны выбрать директорию именно для вашей системы и для вашей архитектуры, эти параметры содержатся в пути. Окончательная директория должна называться os, например: rsync://selectedhost/fedora/updates/7/i386/os/.

Запустите веб-сервер Apache (service httpd start) и откройте порт 80 в файерволе (use the menu option > System > Administration > Firewall and SELinux) чтобы ваш web-сервер был доступен. Теперь вы сможите получить доступ к вашему локальному репозиторию через web-браузер, набрав адрес: http://yourserver/fedora.

Последнее, что нужно сделать — это настроить ваши системы так, чтобы для обновления они использовали ваш локальный репозиторий. Для этого нужно изменить значение опции baseurl в файле /etc/yum.repos.d/fedora-updates.repo. Проверьте один раз, что это работает, и настройте cron на вашем сервере для обновления локального репозитория, используя команду:

# (crontab -l ; echo "0 4    /path/to/update-script") | crontab

В ней замените /path/to/update-script на абсолютный путь к скрипту и время обновления ("0 4 " озночает обновления в 4 часа ночи каждый день).