Свой репозиторий для CentOS

Устанавливаем необходимые утилиты:

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, дальше нужная архитектура и сами пакеты. Теперь наш репозиторий необходимо подключить к клиентской машинке, творим файл описание репозитория:

Читайте также:  Установка клиента SABnzbd Usenet на Ubuntu 16.04/18.04

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

Дальше:

Читайте также:  Настройка NFS-общения на Ubuntu 22.04 и 20.04

$ 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