Установка программного обеспечения в Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

В этом лабораторном практикуме вы получите практический опыт управления пакетами программного обеспечения на системах Red Hat Enterprise Linux (RHEL) с использованием DNF. Вы начнете с понимания команды subscription-manager для регистрации поддержки Red Hat, даже в симулированной среде. Затем вы изучите, как получать и интерпретировать информацию о пакетах RPM, а затем освоите установку и удаление пакетов программного обеспечения с помощью DNF.

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

Примечание: Для загрузки пакетов и доступа к репозиториям требуется сетевое подключение. Доступ к этому практикуму предоставляется только пользователям LabEx Pro.

Регистрация системы для поддержки Red Hat

В этом шаге вы узнаете, как зарегистрировать свою систему для поддержки Red Hat с помощью команды subscription-manager. Хотя полная подписка Red Hat недоступна в этой симулированной среде, понимание команды subscription-manager имеет решающее значение для управления программным обеспечением на системах Red Hat Enterprise Linux. Эта команда позволяет зарегистрировать вашу систему в Red Hat, подключить подписки и получить доступ к сети доставки контента Red Hat для пакетов программного обеспечения и обновлений.

Сначала давайте попробуем зарегистрировать систему, используя плейсхолдер для имени пользователя. Это продемонстрирует использование команды, даже если для фактической регистрации требуются действительные учетные данные Red Hat.

sudo subscription-manager register --username labex

Вам будет предложено ввести пароль. Поскольку это симулированная среда, вы можете ввести любой пароль или просто нажать Enter, если система это позволяет. Команда, скорее всего, не сможет подключиться к службе подписки Red Hat, что ожидается в этой лабораторной среде. Важная часть – понять синтаксис команды и ее предполагаемое использование.

Registering to: subscription.rhsm.redhat.com:443/subscription
Password:
Invalid username or password. To create a login, please visit https://www.redhat.com/wapps/ugc/register.html (HTTP error code 401: Unauthorized)

Наконец, давайте посмотрим, как просмотреть используемые подписки. Эта команда показывает, какие подписки в настоящее время подключены к вашей системе.

sudo subscription-manager list --consumed

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

No consumed subscription pools were found.

Далее давайте рассмотрим, как обычно отображаются доступные подписки для вашей учетной записи Red Hat. Эта команда покажет вам различные пулы подписок, связанные с вашей учетной записью Red Hat.

sudo subscription-manager list --available

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

This system is not yet registered. Try 'subscription-manager register --help' for more information.

Это упражнение демонстрирует базовое использование subscription-manager для регистрации и просмотра информации о подписках. Хотя полная функциональность ограничена в этой симулированной среде, эти команды являются основополагающими для управления доступом к программному обеспечению на системах RHEL.

Изучение информации о пакетах RPM

В этом шаге вы узнаете, как использовать команду rpm для исследования пакетов программного обеспечения. RPM (Red Hat Package Manager) — это основная система управления пакетами, используемая в Red Hat Enterprise Linux. Хотя dnf (которую вы изучите позже) — это инструмент более высокого уровня для управления пакетами из репозиториев, rpm позволяет вам запросить, проверить, установить и удалить отдельные файлы .rpm.

Сначала давайте выведем список всех установленных пакетов RPM на вашей системе. Это может сгенерировать очень длинный список, поэтому мы используем head, чтобы увидеть только начало.

rpm -qa | head

Вы увидите список имён пакетов, версий и архитектур. Например:

libgcc-11.4.1-3.el9.x86_64
crypto-policies-20240202-1.git283706d.el9.noarch
tzdata-2024a-1.el9.noarch
subscription-manager-rhsm-certificates-20220623-1.el9.noarch
redhat-release-9.4-0.4.el9.x86_64
setup-2.13.7-10.el9.noarch
filesystem-3.16-2.el9.x86_64
basesystem-11-13.el9.noarch
pcre2-syntax-10.40-5.el9.noarch
ncurses-base-6.2-10.20210508.el9.noarch

Далее давайте выясним, какой пакет предоставляет определённый файл. Мы будем использовать /etc/yum.repos.d в качестве примера, это каталог, содержащий конфигурационные файлы репозиториев DNF.

rpm -qf /etc/yum.repos.d

Вывод покажет вам пакет, которому принадлежит этот каталог.

redhat-release-9.4-0.4.el9.x86_64

Теперь давайте получим подробную информацию об установленных пакетах. Мы будем использовать пакет dnf в качестве примера.

rpm -qi dnf

Эта команда предоставляет множество сведений, включая имя пакета, версию, релиз, архитектуру, размер, краткое описание, URL, лицензию и подробное описание.

(Вывод команды)

Вы также можете вывести список всех файлов, установленных пакетом. Это может быть полезно для понимания того, что пакет размещает на вашей системе.

rpm -ql dnf | head -n 10

Это покажет первые 10 файлов, установленных пакетом dnf.

(Вывод команды)

Чтобы увидеть только конфигурационные файлы, установленные пакетом, используйте опцию -qc. Давайте проверим пакет openssh-clients.

rpm -qc openssh-clients

Это выведет список конфигурационных файлов, связанных с SSH-клиентами.

(Вывод команды)

Наконец, чтобы просмотреть журнал изменений пакета, используйте --changelog. Это может дать представление об истории обновлений и исправлений для пакета. Давайте посмотрим на пакет audit.

rpm -q --changelog audit | head -n 5

Если пакет не установлен, вы увидите сообщение об ошибке:

package audit is not installed

Вы можете попробовать с установленным пакетом вместо этого. Например, с пакетом setup:

rpm -q --changelog setup | head -n 5

Эти команды rpm являются мощными инструментами для понимания пакетов, установленных на вашей системе, и файлов, которые они содержат.

Установка и удаление пакетов программного обеспечения с помощью DNF

В этом шаге вы узнаете, как использовать dnf (улучшенную версию YUM) для управления пакетами программного обеспечения. dnf является менеджером пакетов по умолчанию в Red Hat Enterprise Linux 9 и используется для установки, обновления и удаления пакетов программного обеспечения, а также для управления репозиториями программного обеспечения. Он автоматически обрабатывает зависимости, что значительно упрощает управление программным обеспечением по сравнению с использованием только rpm.

Сначала давайте выведем список всех доступных и установленных пакетов, в имени которых есть "http". Это даст вам представление о пакетах, связанных с HTTP-сервисами.

sudo dnf list 'http*'

Вы увидите список пакетов, указывающий, установлены они или доступны для установки.

(Вывод команды)

Теперь давайте найдём пакеты, в имени, описании или кратком описании которых содержится "web server". Опция search all полезна для более широкого поиска.

sudo dnf search all 'web server'

Эта команда вернёт список пакетов, соответствующих поисковым критериям.

(Вывод команды)

Давайте получим подробную информацию о пакете httpd, который представляет собой Apache HTTP Server.

sudo dnf info httpd

Это отобразит подробные сведения о пакете, включая его размер, лицензию и описание.

(Вывод команды)

Теперь давайте установим пакет httpd. Для этого вам потребуются права sudo.

sudo dnf install httpd -y

Флаг -y автоматически отвечает "да" на все запросы, что полезно для скриптов, но используйте его с осторожностью в производственных средах.

(Вывод команды)

Вы можете проверить, что httpd установлен, используя команду rpm:

rpm -q httpd
(Вывод команды)

Теперь давайте удалим пакет httpd.

sudo dnf remove httpd -y

Это удалит пакет httpd и все зависимости, которые больше не нужны другим установленным пакетам.

(Вывод команды)

Вы можете подтвердить удаление:

rpm -q httpd
(Вывод команды)

Это демонстрирует основные команды dnf для установки и удаления пакетов программного обеспечения.

Управление репозиториями программного обеспечения DNF

В этом шаге вы узнаете, как управлять репозиториями программного обеспечения DNF. Репозитории — это места хранения пакетов программного обеспечения, из которых dnf их извлекает. Понимание того, как перечислять, включать, отключать и добавлять репозитории, имеет решающее значение для контроля доступного на вашей системе программного обеспечения.

Сначала давайте выведем список всех настроенных репозиториев DNF и их статус (включён или выключен).

sudo dnf repolist all

Вы увидите список идентификаторов репозиториев, их названий и текущего статуса.

(Вывод команды)

Команда dnf config-manager — мощный инструмент для управления конфигурацией репозиториев. Вы можете использовать её для включения или отключения репозиториев. Например, давайте попробуем включить гипотетический репозиторий отладки. Хотя этот конкретный репозиторий может отсутствовать или быть недоступным в данной лабораторной среде, команда демонстрирует синтаксис.

sudo dnf config-manager --enable rhel-9-server-debug-rpms

Вы увидите сообщения об управлении подписками и ошибку, указывающую, что репозиторий не найден, что ожидаемо в данной среде.

(Вывод команды)

Теперь давайте попробуем отключить репозиторий. Мы будем использовать rhel-9-for-x86_64-appstream-rpms в качестве примера. Обратите внимание: это имя репозитория не существует в данной среде UBI, но команда демонстрирует синтаксис.

sudo dnf config-manager --disable rhel-9-for-x86_64-appstream-rpms

Вы увидите сообщения об управлении подписками и ошибку, указывающую, что репозиторий не существует в данной среде.

(Вывод команды)

Давайте проверим, что этого имени репозитория нет в текущей системе:

sudo dnf repolist all | grep rhel-9-for-x86_64-appstream-rpms

Как ожидалось, вывода не будет, так как этого репозитория нет в среде UBI.

(нет вывода)

Давайте попробуем ту же команду включения, чтобы подтвердить, что репозитория не существует:

sudo dnf config-manager --enable rhel-9-for-x86_64-appstream-rpms

Опять же, вы увидите то же сообщение об ошибке:

(Вывод команды)

Команда dnf config-manager --add-repo также может использоваться для добавления новых репозиториев, указав URL. Для демонстрации мы попробуем добавить общий URL репозитория EPEL (Extra Packages for Enterprise Linux). Хотя это может не полностью настроить репозиторий (так как часто требуется ключ GPG и определённый файл .repo), это показывает возможности команды.

sudo dnf config-manager --add-repo="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/"

Вы увидите вывод, указывающий на создание нового файла .repo.

(Вывод команды)

Вы можете проверить вновь созданный файл .repo в /etc/yum.repos.d/. Имя файла будет получено из URL.

ls /etc/yum.repos.d/

Вы должны увидеть файл, подобный dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo, наряду с существующими файлами репозиториев.

(Вывод команды)

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

sudo rm /etc/yum.repos.d/dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo

Этот шаг показал вам, как перечислять, включать, отключать и добавлять репозитории DNF, что является важным навыком для управления источниками программного обеспечения в RHEL.

Просмотр истории транзакций DNF

В этом шаге вы узнаете, как просматривать историю транзакций операций DNF. dnf ведёт подробный журнал всех установок, удалений и обновлений пакетов. Эта история очень полезна для устранения неполадок, аудита и даже отката изменений при необходимости.

Сначала давайте посмотрим сводку всех транзакций DNF, произошедших в вашей системе.

sudo dnf history

Вы увидите таблицу, в которой перечислены каждая транзакция с идентификатором, используемой командной строкой, датой и временем, выполненными действиями и количеством изменённых пакетов.

ID     | Командная строка              | Дата и время    | Действие(я)      | Изменённые
--------------------------------------------------------------------------------
     3 | install httpd             | 2024-04-22 08:00 | Установка        |   10
     2 | remove httpd              | 2024-04-22 08:01 | Удаление         |    6
     1 |                           | 2024-04-22 07:50 | Установка        |  767 EE

Столбец ID особенно важен, так как он позволяет ссылаться на конкретные транзакции. Например, если вы хотите увидеть подробную информацию о конкретной транзакции, вы можете использовать dnf history info <ID>. Давайте посмотрим детали последней транзакции (которая должна быть удалением httpd из предыдущего шага). Вы можете найти ID из вывода dnf history. В приведённом выше примере это 2.

sudo dnf history info 2

Эта команда предоставляет подробный разбор выбранной транзакции, включая пакеты, которые были удалены, их версии и причину действия.

(Вывод команды)

Одной из самых мощных функций истории DNF является возможность отката или повторения транзакций. Например, чтобы отменить удаление httpd, вы бы использовали dnf history undo <ID>. Давайте откатём транзакцию удаления httpd (используя ID из вывода dnf history, например, 2).

sudo dnf history undo 2 -y

Эта команда переустановит пакет httpd и его зависимости, которые были удалены в этой конкретной транзакции.

(Вывод команды)

Вы можете проверить, что httpd теперь снова установлен:

rpm -q httpd
(Вывод команды)

Наконец, давайте снова удалим httpd, чтобы оставить систему в чистом состоянии для будущих лабораторных работ.

sudo dnf remove httpd -y
(Вывод команды)

Этот шаг продемонстрировал, как использовать dnf history для просмотра, проверки и даже отката транзакций DNF, предоставляя мощные возможности для управления системой.

Резюме

В этой лабораторной работе мы освоили ключевые навыки управления пакетами программного обеспечения на Red Hat Enterprise Linux с помощью DNF. Мы начали с понимания команды subscription-manager, которая имеет решающее значение для регистрации систем в Red Hat и доступа к их сети доставки контента, хотя полная регистрация не была возможна в симулированной среде.

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