2.9.2.2 Создание локального репозитория
Предварительная настройка
Зеркало для репозитория РЕД ОС 7.3 стандартной редакции
Зеркало для репозитория РЕД ОС 7.3 сертифицированной редакции
Настройка на клиентском ПК
Настройка обновления репозитория
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: httpd-2.4.64-3, createrepo_c-0.20.0-2, dnf-utils-4.4.2-1
Вы можете подробнее ознакомиться с созданием локальных репозиториев, просмотрев наши обучающие видео:
на RuTube — Создание локального репозитория РЕД ОС;
в Яндекс.Дзен — Создание локального репозитория РЕД ОС;
в VK Видео — Создание локального репозитория РЕД ОС.
На наших каналах вы также сможете найти много другой полезной информации.
Предварительная подготовка сервера
Действия по созданию локального репозитория выполняются от имени пользователя root:
su -
2) Установите необходимые пакеты:
dnf install httpd createrepo yum-utils
3) Настройка web-службы HTTPD:
nano /etc/httpd/conf/httpd.conf
Установите строку с параметром Options внутри секции <Directory "/var/www/html"> в следующее значение:
Options Indexes FollowSymLinks IncludesСделать это можно командой:
sudo sed -i_lrepo_bak '/<Directory "\/var\/www\/html">/,/<\/Directory>/{/Includes/! s/^\([^#]*Options.*\).*$/\1 Includes/}' /etc/httpd/conf/httpd.confДобавьте в автозагрузку и запустите httpd.
systemctl enable httpd --now
В подразделе Настройка на клиентском ПК приводится информация о настройке клиентского ПК - с изменением адреса в файлах .repo.
Можно добавить запись repo.red-soft.ru = <ip-адрес_сервера> в ваш DNS-сервер. В этом случае менять конфигурацию на клиенте не потребуется.
Для создания локальных репозиториев Base, Updates, Kernels и Kernels6 необходимо предварительно убедиться, что у вас есть необходимый объем требуемого свободного дискового пространства.
Для получения информации о необходимом объеме для какого-либо определенного репозитория выполните команду:
dnf repoinfo <название_репозитория> | grep "Размер репозитория"Чтобы узнать более точный размер всех подключенных репозиториев, можно воспользоваться командой:
dnf repoinfo | grep "Размер репозитория" | awk -F ':' '{size = $2; sub(/M$/, "", size); if (index($2, "M") > 0) total += size / 1024; else total += size} END {printf "Общий вес \033[41mвсех подключенных\033[0m репозиториев: %.2f G\n", total}'
Зеркало для репозитория РЕД ОС 7.3 стандартной редакции
Создайте запись для репозитория в каталоге /etc/yum.repos.d/.
nano /etc/yum.repos.d/red.os.7.3.repo
с содержимым:
# RedOS-Standard.repo
#
[base7.3]
name=RedOS Standard - Base 7.3
baseurl=https://repo1.red-soft.ru/redos/7.3/$basearch/os,https://mirror.yandex.ru/redos/7.3/$basearch/os,http://repo.red-soft.ru/redos/7.3/$basearch/os
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFTДля размещения репозиториев можно использовать каталог, отличный от /var/www/html/, создав для него символическую ссылку и установив правильный контекст SELinux (для файловых систем с поддержкой Extended File Attributes - ext2, ext3, ext4, jfs, xfs, btrfs):
ln -s /mnt/repo/ /var/www/html/ semanage fcontext -a -t httpd_sys_content_t "/mnt/repo(/.*)?" restorecon -Rv /mnt/repo/
Здесь в качестве примера используется каталог /mnt/repo/. Обратите внимание, что для пользователя или группы apache файлы и каталоги в директории репозитория должны быть доступны для чтения. Управление правами доступа подробно описано в статье «Настройка прав доступа к файлам и каталогам». Восстановление прав и контекста SELinux командой restorecon необходимо произвести после создания репозитория (createrepo).
Создайте каталог для репозиториев:
mkdir -p /var/www/html/repo/red-os-7.3 cd /var/www/html/repo/red-os-7.3
Запустите процедуру создания зеркала репозитория-источника. Начнется загрузка пакетов репозитория. Обратите внимание, что на машине должен быть доступ к сети Интернет.
reposync --repoid=base7.3 --downloadcomps --download-metadata
В окне терминала выполните следующую команду:
createrepo -v /var/www/html/repo/red-os-7.3/base7.3 -g comps.xml
Восстановите контекст SELinux каталога, в котором находится репозиторий. Например, при расположении репозитория в каталоге /var/www/html/repo/ необходимо выполнить:
restorecon -Rv /var/www/html/repo/
Команда restorecon не следует по символическим ссылкам, поэтому необходимо указывать прямой путь до каталога с репозиторием.
Репозиторий для РЕД ОС 7.3 стандартной редакции готов.
По аналогии создайте зеркало репозитория с обновлениями системы - RedOS - Updates, RedOS - kernels и RedOS - kernels6.
Конфигурация репозитория RedOS - Updates расположена в файле /etc/yum.repos.d/RedOS-Updates.repo, конфигурация RedOS - kernels расположена в файле /etc/yum.repos.d/RedOS-kernels.repo, конфигурация RedOS - kernels6 расположена в файле /etc/yum.repos.d/RedOS-kernels6.repo.
Для репозитория updates, kernels и kernels6 команду createrepo запустите без параметра -g comps.xml.
Зеркало для репозитория РЕД ОС 7.3 сертифицированной редакции
Создайте конфигурационный файл для репозитория в каталоге /etc/yum.repos.d/.
nano /etc/yum.repos.d/redos7.3c.repo
с содержимым:
[base7.3c]
name=RedOS Cert - Base 7.3
baseurl=https://repo1.red-soft.ru/redos/7.3c/$basearch/os,https://mirror.yandex.ru/redos/7.3c/$basearch/os,http://repo.red-soft.ru/redos/7.3c/$basearch/os
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFTДля размещения репозиториев можно использовать каталог, отличный от /var/www/html/, создав для него символическую ссылку и установив правильный контекст SELinux (для файловых систем с поддержкой Extended File Attributes - ext2, ext3, ext4, jfs, xfs, btrfs):
ln -s /mnt/repo/ /var/www/html/ semanage fcontext -a -t httpd_sys_content_t "/mnt/repo(/.*)?" restorecon -Rv /mnt/repo/
Здесь в качестве примера используется каталог /mnt/repo/. Обратите внимание, что для пользователя или группы apache файлы и каталоги в директории репозитория должны быть доступны для чтения. Управление правами доступа подробно описано в статье «Настройка прав доступа к файлам и каталогам». Восстановление прав и контекста SELinux командой restorecon необходимо произвести после создания репозитория (createrepo).
Создайте каталог для репозиториев.
mkdir -p /var/www/html/repo/red-os-7.3c cd /var/www/html/repo/red-os-7.3c
Загрузите в этот каталог пакеты из внешнего репозитория РЕД ОС 7.3 сертифицированной редакции, для этого выполните команды:
reposync --repoid=base7.3c --downloadcomps --download-metadata
Далее, в окне терминала, выполните команду:
createrepo -v /var/www/html/repo/red-os-7.3c/base7.3c -g comps.xml
Восстановите контекст SELinux каталога, в котором находится репозиторий. Например, при расположении репозитория в каталоге /var/www/html/repo/ необходимо выполнить:
restorecon -Rv /var/www/html/repo/
Команда restorecon не следует по символическим ссылкам, поэтому необходимо указывать прямой путь до каталога с репозиторием.
Репозиторий для РЕД ОС 7.3 сертифицированной редакции готов.
По аналогии создайте зеркало репозитория с обновлениями системы - RedOS - Updates, RedOS - kernels и RedOS - kernels6.
Конфигурация репозитория RedOS - Updates расположена в файле /etc/yum.repos.d/RedOS-Updates.repo, конфигурация RedOS - kernels расположена в файле /etc/yum.repos.d/RedOS-kernels.repo, конфигурация RedOS - kernels6 расположена в файле /etc/yum.repos.d/RedOS-kernels6.repo.
Для репозитория updates, kernels и kernels6 команду createrepo запустите без параметра -g comps.xml.
Настройка на клиентском ПК
Если у вас используется DNS-сервер, то самый простой путь - это создать на нём соответствующую запись (указать для адресов репозиториев ip-адрес в локальной сети).
Для подключения локального репозитория на клиенте создайте запись для репозитория в каталоге /etc/yum.repos.d/, например:
nano /etc/yum.repos.d/redos7.3c.repo
с содержимым, в котором измените значение параметра baseurl, вписав путь к вашему репозиторию, например:
# RedOS-Cert.repo
#
[base7.3c]
name=RedOS Cert - Base 7.3c
baseurl=http://192.168.0.1/repo/redos7.3c/base7.3c
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT В иных репозиториях, которые находятся по пути /etc/yum.repos.d/, измените значение параметра enabled на enabled=0 (если такого значения в файлах нет, впишите его самостоятельно), чтобы не возникало конфликтов.
Например, файл RedOS-Base.repo, используемый по умолчанию, должен выглядеть так:
[base]
name=RedOS - Base
baseurl=https://repo1.red-soft.ru/redos/7.3/$basearch/os
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFTНастройка обращения к локальным репозиториям Base и Updates может быть осуществлена двумя способами:
созданием собственных файлов репозиториев;
редактированием файлов репозиториев, используемых по умолчанию.
При создании собственных файлов локальных репозиториев не рекомендуется удалять имеющиеся файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo) – их необходимо отключить, изменив значение параметра enabled=1 на enabled=0! Иначе при обновлении системы данные файлы вновь появятся в каталоге /etc/yum.repos.d/.
В случае если были изменены и настроены файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo), после обновления системы в каталоге /etc/yum.repos.d/ будут сохранены новые файлы расширением .rpmnew – они являются резервной копией стандартных конфигурационных файлов и не повлияют на текущую настройку локальных репозиториев, удалять их не рекомендуется.
Обновите информацию о репозиториях, для этого выполните следующие команды:
dnf makecache dnf update
Настройка синхронизации локального репозитория
Для синхронизации локального репозитория воспользуйтесь нашей инструкцией Настройка синхронизации локального репозитория.
Дата последнего изменения: 01.11.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.