headermask image
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Локальный репозитарий для CentOS

Иногда довольно удобно иметь свое локальное зеркало репозитариев, это позволяет снизить количество входящего трафика при обновлении нескольких серверов, а также ускорить сам процесс обновления.

В данной заметке я описал процесс создания локального репозитария для CentOS 5.2, архитектура x86_64. Для репозитария необходим работающий http сервер, wget/rsync и утилита createrepo.

Создаем каталог для репозитария:

host# mkdir -pv /var/www/html/centos/5.2/{os,updates}/x86_64

Base repository.

Просто копируем с инсталяционного DVD-диска каталог CentOS в каталог /var/www/html/centos/5.2/os/x86_64, а файлы ключей RPM-GPG-* в /var/www/html/centos/.

Запускаем утилиту createrepo:

host# createrepo /var/www/html/centos/5.2/os/x86_64

Updates repository.

С обновлениями немного сложнее. Лица, имеющие выход по rsync, идут на CentOS European Mirrors, выбирают себе зеркало и синхронизируются с него.

host# /usr/bin/rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/5.2/updates/x86_64/ /var/www/html/centos/5.2/updates/x86_64/

Поскольку по rsync копируются не только rpm-ки, а и заголовки репозитария, то запуск createrepo не требуется.

Если же rsync закрыт, то зеркалирование выполняется немного сложнее. На www.opennet.ru я нашел скрипт, при помощи которого можно засинхронизировать каталоги репозитария по HTTP. Сам скрипт пришлось чуточку подправить, чтобы он заработал. Вместо строки:

cut -d"=" $file_html -f4 | cut -d"\"" -f2 | grep rpm | sort > $file_rpms

Пришлось прописать:

cut -d">" $file_html -f4 | cut -d"<" -f1 | grep rpm | sort > $file_rpms

Запуск скрипта:

host# ./mirror.sh http://ftp.tlk-l.net/pub/mirrors/centos.org/5.2/updates/x86_64/RPMS/ /var/www/html/centos/5.2/updates/x86_64/RPMS

После синхронизации каталога updates по HTTP необходимо будет запустить createrepo:

host# createrepo /var/www/html/centos/5.2/updates/x86_64

Ну и, конечно же, вешаем в cron вызов синхронизации каталога updates и запуск createrepo при необходимости.

Подключение локального репозитария.

В файле /etc/yum.repos.d/CentOS-Base.repo указываем наше зеркало:

[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.domain.ua/centos/$releasever.2/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.domain.ua/centos/RPM-GPG-KEY-CentOS-5
#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.domain.ua/centos/$releasever.2/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.domain.ua/centos/RPM-GPG-KEY-CentOS-5

Ну а далее, все как обычно:

host# yum check-update


И так далее, и тому подобное…

Постовой

Отличный сайт, где можно выгодно купить настроящие vertu.