Найти в Дзене

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

Репозиторий программного обеспечения — это место для хранения и поддержки программных пакетов RPM для дистрибутива Redhat Linux, откуда пользователи могут загружать и устанавливать пакеты на своих серверах Linux. Обычно репозитории хранятся в общественной сети, к которой могут обращаться сразу несколько пользователей в Интернете. Однако вы можете создать свой собственный локальный репозиторий на вашем сервере и предоставить доступ к нему как себе, так и другим компьютерам в вашей локальной сети при помощи веб-сервера HTTP. Преимущество создания локального репозитория заключается в том, что вам не требуется подключение к Интернету для установки программного обеспечения или обновлений. YUM (Yellowdog Updater Modified) или DNF (Dandified YUM) — это широко распространённая утилита для управления пакетами ПО для систем Linux, основанных на RPM (RedHat Package Manager). Данная утилита упрощает установку ПО в RedHat/CentOS Linux. В данной статье, мы объясним как настроить локальный репозитори
Оглавление

Репозиторий программного обеспечения — это место для хранения и поддержки программных пакетов 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
Установка Nginx в RHEL 8

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

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Проверка Nginx в RHEL 8
Проверка Nginx в RHEL 8

3. Теперь вам необходимо открыть 80 и 443 порты Nginx в фаерволе:

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload
Открываем порт в фаерволе RHEL 8
Открываем порт в фаерволе RHEL 8

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

http://SERVER_DOMAIN_NAME_OR_IP
Проверка работы Nginx в RHEL 8
Проверка работы Nginx в RHEL 8

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

5. Создайте точку монтирования локального репозитория в корневом каталоге документов /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]

6. Локально скопируйте файлы 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
Проверка содержимого ISO файлов в RHEL 8

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

7. Настало время для настройки локального репозитория. Вам необходимо создать файл настройки в директории /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.

8. Затем отредактируйте созданный файл:

# vim /etc/yum.repos.d/local.repo

9. Скопируйте и вставьте в файл следующее:

[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

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

10. Теперь вам нужно установить необходимые пакеты для создания, настройки и управления вашим локальным репозиторием, используя следующую команду:

# yum install createrepo yum-utils
# createrepo /var/www/html/local_repo/

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

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

# yum clean all

или

# dnf clean all

12. Затем убедитесь, что созданные репозитории отображаются в списке включенных репозиториев.

# dnf repolist

или

# dnf repolist -v #shows more detailed information
Проверка локального репозитория в RHEL 8
Проверка локального репозитория в RHEL 8

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

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

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

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

14. Теперь на клиентских машинах 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.

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

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

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

---

Больше интересного в наших социальных медиа! Подпишись, чтобы ничего не пропустить!

ITdoxy | Telegram | VK