3.9.2.2 Создание локального репозитория
Скачать документ Подготовка сервера
Создание локального зеркала репозитория РЕД ОС 8
Настройка на клиентском ПК
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция, Сервер графический, Сервер минимальный
- Версия ПО: httpd-2.4.62-2, createrepo_c-0.20.1-1, dnf-utils-4.4.2-1
Вы можете подробнее ознакомиться с созданием локальных репозиториев, просмотрев наши обучающие видео:
на RuTube — Создание локального репозитория РЕД ОС;
в Яндекс.Дзен — Создание локального репозитория РЕД ОС;
в VK Видео — Создание локального репозитория РЕД ОС.
На наших каналах вы также сможете найти много другой полезной информации.
В рамках данной статьи все действия должны выполняться с правами администратора системы или суперпользователя root.
Перейдите в сеанс пользователя root (если данная учётная запись включена):
su -
или выполните от имени администратора (пользователя в группе wheel) команду:
sudo su -
Подготовка сервера
Установите пакеты, необходимые для организации зеркала репозитория, доступного по протоколу HTTP:
dnf install httpd createrepo_c dnf-utils
Запустите и добавьте в автозагрузку службу httpd:
systemctl enable httpd --now
Для создания локальных репозиториев Base и Updates необходимо предварительно убедиться, что у вас есть необходимый объем требуемого свободного дискового пространства.
Для получения информации о необходимом объеме для какого-либо определенного репозитория выполните команду:
dnf repoinfo <название_репозитория> | grep -iE 'размер.*репозитория'
Чтобы узнать более точный размер всех подключенных репозиториев, можно воспользоваться командой:
dnf repoinfo | grep -iE 'размер.*репозитория' | 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}'
Для размещения репозиториев можно использовать каталог, отличный от /var/www/html/, создав для него символическую ссылку и установив правильный контекст SELinux (для файловых систем с поддержкой Extended File Attributes - ext2, ext3, ext4, jfs, xfs, btrfs):
ln -s /mnt/repodisk/ /var/www/html/repos semanage fcontext -a -t httpd_sys_content_t "/mnt/repodisk(/.*)?"
Здесь в качестве примера используется каталог /mnt/repodisk/.
Обратите внимание, что для пользователя или группы apache файлы и каталоги в директории репозитория должны быть доступны для чтения. Управление правами доступа подробно описано в статье «Настройка прав доступа к файлам и каталогам».
Создание локального зеркала репозитория РЕД ОС 8
Создайте конфигурационный файл описания репозитория-источника в каталоге /etc/yum.repos.d/:
nano /etc/yum.repos.d/redos8_base_src.repo
Вставьте следующее содержимое (пример для репозитория Base):
[redos8_base_src]
name=RedOS 8 - Base (Mirror source)
baseurl=https://repo1.red-soft.ru/redos/8.0/$basearch/os,https://mirror.yandex.ru/redos/8.0/$basearch/os,http://repo.red-soft.ru/redos/8.0/$basearch/os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=0
Значение redos8_base_src
— это ID (идентификатор) репозитория-источника, который будет применён далее в команде reposync
. Задать другое значение ID можно с соблюдением уникальности, применением только латиницы (a-z), цифр (0-9) и спец. символов ( - , _ , . , : ).
Создайте каталог для размещения содержимого локальных репозиториев:
mkdir -p /var/www/html/repos/redos8/ cd /var/www/html/repos/redos8/
Запустите процедуру создания зеркала репозитория-источника:
reposync --repoid=redos8_base_src --download-metadata --downloadcomps
При использовании дополнительного параметра --newest-only
будут загружены только самые новые версии каждого пакета.
Для формирования/обновления метаданных локального репозитория необходимо выполнить команду:
createrepo -v /var/www/html/repos/redos8/redos8_base_src/ -g comps.xml
Параметр -g comps.xml
требуется только при создании зеркала репозитория RedOS - Base.
По аналогии создайте зеркало репозитория с обновлениями системы — RedOS - Updates.
Конфигурация репозитория RedOS - Updates находится в файле /etc/yum.repos.d/RedOS-Updates.repo.
Настройка на клиентском ПК
Для подключения локального репозитория на клиенте создайте запись для репозитория в каталоге /etc/yum.repos.d/, например:
nano /etc/yum.repos.d/RedOS8-Base-local.repo
Заполните файл следующим содержимым:
[RedOS8-Base-local]
name=Local RED OS 8 Base repo
baseurl=http://192.168.101.10/repos/redos8/redos8_base_src/
# baseurl=http://repo.your.domain/repos/redos8/redos8_base_src/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1
Значение параметра baseurl
задайте в зависимости от протокола, имени или IP-адреса сервера и пути к репозиторию.
Настройка обращения к локальным репозиториям 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
Если настройка выполнена верно, команда будет завершена без ошибок.
Дата последнего изменения: 16.10.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.