Как создать локальный HTTP-репозиторий Yum/DNF в RHEL 8

Читать первым в Telegram

Репозиторий программного обеспечения — это место для хранения и поддержки программных пакетов RPM для дистрибутива Redhat Linux, откуда пользователи могут загружать и устанавливать пакеты на своих серверах Linux.

Обычно репозитории хранятся в общественной сети, к которой могут обращаться сразу несколько пользователей в Интернете. Однако вы можете создать свой собственный локальный репозиторий на вашем сервере и предоставить доступ к нему как себе, так и другим компьютерам в вашей локальной сети при помощи веб-сервера HTTP.

Преимущество создания локального репозитория заключается в том, что вам не требуется подключение к Интернету для установки программного обеспечения или обновлений.

YUM (Yellowdog Updater Modified) или DNF (Dandified YUM) — это широко распространённая утилита для управления пакетами ПО для систем Linux, основанных на RPM (RedHat Package Manager). Данная утилита упрощает установку ПО в RedHat/CentOS Linux.

В данной статье, мы объясним как настроить локальный репозиторий YUM/DNF в RHEL 8, используя установочный DVD или ISO-образ. Мы также покажем вам, как найти и установить пакеты ПО на клиентских компьютерах RHEL 8, используя HTTP-сервер Nginx.

Среда тестирования

Local Repository Server: RHEL 8 [192.168.0.106]
Local Client Machine: RHEL 8 [192.168.0.200]

Шаг 1. Установка веб-сервера Nginx

  1. Первым делом установите HTTP-сервер Nginx с помощью диспетчера пакетов DNF:
# dnf install nginx

Установка Nginx в RHEL 8

  1. После завершения установки, необходимо включить автоматический запуск службы Nginx во время загрузки системы и проверить состояние с помощью следующих команд:
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

Проверка Nginx в RHEL 8

  1. Теперь вам необходимо открыть 80 и 443 порты Nginx в фаерволе:
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

Открываем порт в фаерволе RHEL 8

  1. Убедитесь, что ваш сервер Nginx запущен и работает, перейдя по следующему URL-адресу в веб-браузере. Вы увидите веб-страницу Nginx по-умолчанию.
http://SERVER_DOMAIN_NAME_OR_IP

Проверка работы Nginx в RHEL 8

Шаг 2. Монтирование установочного DVD/ISO-образа в RHEL 8

  1. Создайте точку монтирования локального репозитория в корневом каталоге документов /var/www/html/ и смонтируйте загруженный DVD/ISO-образ в каталог /mnt.
# mkdir /var/www/html/local_repo
# mount -o loop rhel-8.0-x86_64-dvd.iso /mnt  [Mount Download ISO File]
# mount /dev/cdrom /mnt                       [Mount DVD ISO File from DVD ROM]
  1. Локально скопируйте файлы ISO в каталог /var/www/html/local_repo и проверьте содержимое с помощью ls команды:
# cd /mnt
# tar cvf - . | (cd /var/www/html/local_repo/; tar xvf -)
# ls -l /var/www/html/local_repo/

Проверка содержимого ISO файлов в RHEL 8

Шаг 3. Настройка локального репозитория

  1. Настало время для настройки локального репозитория. Вам необходимо создать файл настройки в директории /etc/yum.repos.d/ и установить соответствующие разрешения для файла, как показано ниже:
# touch /etc/yum.repos.d/local-rhel8.repo
# chmod  u+rw,g+r,o+r  /etc/yum.repos.d/local-rhel8.
  1. Затем отредактируйте созданный файл:
# vim /etc/yum.repos.d/local.repo
  1. Скопируйте и вставьте в файл следующее:
[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Сохраните внесённые изменения и закройте файл.

  1. Теперь вам нужно установить необходимые пакеты для создания, настройки и управления вашим локальным репозиторием, используя следующую команду:
# yum install createrepo  yum-utils
# createrepo /var/www/html/local_repo/

Шаг 4. Тестирование локального репозитория

  1. На этом шаге вам необходимо запустить процесс очистки временных файлов, которые хранятся в репозиториях, используя следующую команду:
# yum clean all

или

# dnf clean all
  1. Затем убедитесь, что созданные репозитории отображаются в списке включенных репозиториев.
# dnf repolist

или

# dnf repolist  -v  #shows more detailed information

Проверка локального репозитория в RHEL 8

  1. Попробуйте установить пакет из локальных репозиториев, например, установите инструмент командной строки Git, как описано ниже:
# dnf install git

Установка пакета из локального репозитория Yum в RHEL8

Как видно из вывода вышеуказанной команды, пакет Git устанавливается из репозитория LocalRepo_AppStream, что и показано на скриншоте. Это означает, что локальные репозитории включены и исправно работают.

Шаг 5. Установка локального репозитория YUM на клиентских компьютерах

  1. Теперь на клиентских машинах RHEL 8 добавьте ваши локальные репозитории в конфигурацию YUM:
# vi /etc/yum.repos.d/local-rhel8.repo

Скопируйте и вставьте конфигурацию, описанную ниже, в файл. Обязательно замените baseurl IP-адресом или доменом своего сервера.

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

[LocalRepo_AppStream]
name=LocalRepo_AppStream
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

Сохраните внесённые изменения и начните использовать локальные зеркала YUM.

  1. Затем пропишите следующую команду, чтобы увидеть ваши локальные репозитории в списке доступных на клиентских машинах репозиториев YUM:
# dnf repolist

Проверка локального репозитория клиента в RHEL 8

Спасибо за внимание! Надеемся, что данная статья помогла вам.

Удачи!

Оригинальная статья: How to Create Local HTTP Yum/DNF Repository on RHEL 8

Поддержать проект

Социальные сети проекта:

Подпишись, чтобы ничего не пропустить!