Устанавливаем необходимые утилиты:
yum install -y createrepo
Создаем папку для хранения пакетов:
mkdir -p /var/www/html/repository
Или, когда нужно несколько архитектур и версий ПО:
mkdir -p /var/www/html/repository/5/x86_64
mkdir -p /var/www/html/repository/5/i368
mkdir -p /var/www/html/repository/6/x86_64
mkdir -p /var/www/html/repository/6/i386
Хронируем наш репозиторий с одни из официальных зеркал CentOS:
rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/5.7/updates/i386/RPMS/ /var/www/html/repository/5/i368
rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/5.7/updates/x86_64/RPMS/ /var/www/html/repository/5/x86_64
rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/6.2/updates/i386/Packages/ /var/www/html/repository/6/i386
rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/6.2/updates/x86_64/Packages/ /var/www/html/repository/6/x86_64
Бросим генерацию метаданных репозитория:
createrepo /var/www/html/repository/5/x86_64
createrepo /var/www/html/repository/5/i368
createrepo /var/www/html/repository/6/x86_64
createrepo /var/www/html/repository/6/i386
После данного в каждой папке создастся папка (Папка — канцелярская принадлежность, обложка, конверт для бумаг, скоросшиватель.Папка-регистратор — канцелярская папка с арочным механизмом для хранения документов.Папка — экранный объект в) repodata с данными о всех наших пакетах. Сейчас нам необходимо настроить Apache, чтобы указанная папка была полностью доступна по протоколу HTTP. В результате получится страница http://repo.domain/repository на которой будут видны папки 5 и 6, дальше нужная архитектура и сами пакеты. Теперь наш репозиторий необходимо подключить к клиентской машинке, творим файл описание репозитория:
vi /etc/yum.repos.d/myrepo-centos.repo
Вставляем в него следующее:
[myrepo-centos]
name=My Personal Yum Repo
baseurl=http://repo.domain/repository/5/$basearch
enabled=1
# not secure
gpgcheck=0
[myrepo-centos]
name=My Personal Yum Repo
baseurl=http://repo.domain/repository/6/$basearch
enabled=1
# not secure
gpgcheck=0
Бросим yum update для проверки нашего репозитория. Если в процессе выполнения команды yum repolist приобретаем подобную ошибку:
http://updates/repo/centos/5.3/updates/repodata/primary.xml.gz: [Errno -3] Error performing checksum
Trying other mirror.
primary.xml.gz | 376 kB 00:00
http://updates/repo/centos/5.3/updates/repodata/primary.xml.gz: [Errno -3] Error performing checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from Updates: [Errno 256] No more mirrors to try.
То исрпвить ее возможно персоздав метаданные пакетов такой командой:
createrepo -v -s sha1 /var/www/html/repository/5/x86_64
createrepo -v -s sha1 /var/www/html/repository/5/i368
createrepo -v -s sha1 /var/www/html/repository/6/x86_64
createrepo -v -s sha1 /var/www/html/repository/6/i386
Дальше:
$ yum clean all
Loaded plugins: fastestmirror
Cleaning up Everything
Cleaning up list of fastest mirrors
$ yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
Updates | 1.0 kB 00:00
primary.xml.gz | 367 kB 00:00
Updates 634/634
repo id repo name status
Updates Updates enabled : 634
repolist: 634

