2009/02/13

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

Роман Шрамко напомнил о давней идее - организовать локальный CentOS репозитарий. Приложив минимум усилий, имеем скрипт centos_repository_update.sh, который через cron всё делает автоматечески.
#!/bin/bash

rsync="/usr/bin/rsync -aqHz --delete --delay-updates --bwlimit=512"
mirror=mirrors.kernel.org::centos
ver=5
archlist="i386"
baselist="os updates extras"
local=/var/centos

for arch in $archlist
do
for base in $baselist
do
remote=$mirror/$ver/$base/$arch/
$rsync $remote $local/$ver/$base/$arch/
done
done
Прежде чем запускать скрипт, необходимо создать требуемую структуру каталогов
mkdir -pv /var/centos/5/{os,updates,extras}
Вот теперь можно запустить сам скрипт centos_repository_update.sh и, пока он скачивает пакеты, сконфигурировать доступ к каталогу /var/centos через http-протокол с клиентов.
На клиентах необходимо отредактировать описания доступных репозитариев (каталог /etc/yum.repos.d), неиспользуемые репозитарии можно отключить. Вот пример переписанного конфигурационного файла для работы с новоиспечённым локальным репозитарием:
[base]
name=CentOS-$releasever - Base
baseurl=http://server/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-$releasever - Updates
baseurl=http://server/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-$releasever - Extras
baseurl=http://server/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5
Перед запуском утилиты yum, необходимо ещё выложить в корень (в директорию /var/centos/) репозитария открытый gpg-ключ релиза (файл /var/centos/5/os/i386/RPM-GPG-KEY-CentOS-5).

Ссылки:
  1. CentOS Mirroring HowTo
  2. Локальный репозитарий для CentOS

2 comments:

Dormestmass said...

Привет!

Рад что мой блог читают, только фамилия у меня не Храмко, а Шрамко :))

Roman Sozinov said...

to dormestmass:
Поправил :)