Подготовка сервера Создание локального зеркала репозитория РЕД ОС 8 Настройка на клиентском ПК
Окружение
Вы можете подробнее ознакомиться с созданием локальных репозиториев, просмотрев наши обучающие видео:
на 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 файлы и каталоги в директории репозитория должны быть доступны для чтения. Управление правами доступа подробно описано в статье «Настройка прав доступа к файлам и каталогам».
Создайте конфигурационный файл описания репозитория-источника в каталоге /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) и спец. символов ( - , _ , . , : ).
redos8_base_src
reposync
Создайте каталог для размещения содержимого локальных репозиториев:
mkdir -p /var/www/html/repos/redos8/ cd /var/www/html/repos/redos8/
Запустите процедуру создания зеркала репозитория-источника. Начнется загрузка пакетов репозитория. Обратите внимание, что на машине должен быть доступ к сети Интернет.
reposync --repoid=redos8_base_src --download-metadata --downloadcomps
При использовании дополнительного параметра --newest-only будут загружены только самые новые версии каждого пакета.
--newest-only
Для формирования/обновления метаданных локального репозитория необходимо выполнить команду:
createrepo -v /var/www/html/repos/redos8/redos8_base_src/ -g comps.xml
Параметр -g comps.xml требуется только при создании зеркала репозитория RedOS - Base.
-g comps.xml
По аналогии создайте зеркало репозитория с обновлениями системы — 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-адреса сервера и пути к репозиторию.
baseurl
Настройка обращения к локальным репозиториям Base и Updates может быть осуществлена двумя способами:
созданием собственных файлов репозиториев;
редактированием файлов репозиториев, используемых по умолчанию.
При создании собственных файлов локальных репозиториев не рекомендуется удалять имеющиеся файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo) – их необходимо отключить, изменив значение параметра enabled=1 на enabled=0! Иначе при обновлении системы данные файлы вновь появятся в каталоге /etc/yum.repos.d/.
enabled=1
enabled=0
В случае если были изменены и настроены файлы репозиториев по умолчанию (RedOS-Base.repo, RedOS-Updates.repo), после обновления системы в каталоге /etc/yum.repos.d/ будут сохранены новые файлы расширением .rpmnew – они являются резервной копией стандартных конфигурационных файлов и не повлияют на текущую настройку локальных репозиториев, удалять их не рекомендуется.
Обновите информацию о репозиториях, для этого выполните следующие команды:
dnf makecache
Если настройка выполнена верно, команда будет завершена без ошибок.
Дата последнего изменения: 29.11.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.