2.9.2.2 Создание локального репозитория
Скачать документ Предварительная настройка
Зеркало для репозитория РЕД ОС 7.3 стандартной редакции
Зеркало для репозитория РЕД ОС 7.3 сертифицированной редакции
Настройка на клиентском ПК
Настройка обновления репозитория
Вы можете подробнее ознакомиться с созданием локальных репозиториев, просмотрев наши обучающие видео:
на RuTube — Создание локального репозитория РЕД ОС;
в Яндекс.Дзен — Создание локального репозитория РЕД ОС;
в VK Видео — Создание локального репозитория РЕД ОС.
На наших каналах вы также сможете найти много другой полезной информации.
Предварительная подготовка сервера
Действия по созданию локального репозитория выполняются от имени пользователя root:
su root
1) Переведите selinux в режим уведомлений.
nano /etc/selinux/config
Заменив текст SELINUX=enforcing на SELINUX=permissive
Выполните:
setenforce 0
Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.
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.
Для репозитория updates и kernels команду 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.
Для репозитория updates и kernels команду 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
Настройка синхронизации локального репозитория
Для синхронизации локального репозитория воспользуйтесь нашей инструкцией Настройка синхронизации локального репозитория.
Дата последнего изменения: 06.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.