Введение
В этой лабораторной работе вы получите практический опыт управления пакетами программного обеспечения в системах 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, привязать подписки и получить доступ к сети доставки контента (CDN) Red Hat для получения пакетов и обновлений.
Сначала попробуем зарегистрировать систему, используя фиктивное имя пользователя. Это продемонстрирует использование команды, даже если для реальной регистрации требуются действительные учетные данные Red Hat.
sudo subscription-manager register --username labex --password labex 2>&1 | tee ~/project/subscription-register.txt
В этой лабораторной работе используются фиктивные учетные данные, чтобы команда могла выполняться в неинтерактивном режиме. Команда не сможет пройти аутентификацию, что ожидаемо в данной среде, а вывод будет сохранен в файле ~/project/subscription-register.txt для ознакомления.
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)
Теперь давайте посмотрим, какие репозитории были бы доступны через подписки Red Hat в зарегистрированной системе.
sudo subscription-manager repos --list 2>&1 | tee ~/project/subscription-repos.txt
Поскольку система не зарегистрирована, вы увидите сообщение о том, что репозитории, поддерживаемые подпиской, недоступны.
This system has no repositories available through subscriptions.
Далее проверим текущий статус подписки для этой системы. Это практический способ убедиться, что система все еще не зарегистрирована, прежде чем вы начнете работать с контентом подписки Red Hat.
sudo subscription-manager status 2>&1 | tee ~/project/subscription-status.txt
Так как система еще не зарегистрирована, команда сообщит об этом статусе напрямую.
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Not registered
Это упражнение демонстрирует базовое использование subscription-manager для регистрации и проверки статуса. Хотя функциональность ограничена в этой симулированной среде, эти команды являются фундаментальными для понимания доступа к ПО в системах RHEL.
Изучение информации об RPM-пакетах
На этом этапе вы узнаете, как использовать команду rpm для исследования пакетов программного обеспечения. RPM (Red Hat Package Manager) — это основная система управления пакетами, используемая в Red Hat Enterprise Linux. Хотя dnf (который вы изучите позже) является инструментом более высокого уровня для управления пакетами из репозиториев, rpm позволяет запрашивать, проверять, устанавливать и удалять отдельные файлы .rpm.
Сначала выведем список всех установленных RPM-пакетов в вашей системе. Это может быть очень длинный список, поэтому мы перенаправим вывод в head, чтобы увидеть только начало.
rpm -qa | head > ~/project/rpm-installed.txt
cat ~/project/rpm-installed.txt
Вы увидите список имен пакетов, версий и архитектур. Например:
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.noarch
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.
DNF_PACKAGE=$(rpm -qf /usr/bin/dnf)
rpm -qi "$DNF_PACKAGE" > ~/project/dnf-package-info.txt
cat ~/project/dnf-package-info.txt
Эти команды сначала определяют, какой RPM владеет /usr/bin/dnf, а затем показывают подробные метаданные пакета, включая версию, релиз, архитектуру, лицензию и краткое описание.
Name : dnf
Version : 4.14.0
Release : 9.el9
Architecture: noarch
Install Date: Thu Jul 18 15:50:10 2024
Group : Unspecified
Size : 2425281
License : GPLv2+
Signature : RSA/SHA256, Fri Nov 10 10:14:09 2023, Key ID 199e2f91fd431d51
Source RPM : dnf-4.14.0-9.el9.src.rpm
Build Date : Thu Oct 26 05:20:14 2023
Build Host : x86-64-01.build.eng.rdu2.redhat.com
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : https://github.com/rpm-software-management/dnf
Summary : Package manager
Description :
Utility that allows users to manage packages on their systems.
It supports RPMs, modules and comps groups & environments.
Вы также можете вывести список всех файлов, установленных пакетом. Это полезно для понимания того, что именно пакет размещает в вашей системе.
rpm -ql dnf | head -n 10
Это покажет первые 10 файлов, установленных пакетом dnf.
/usr/bin/dnf
/usr/lib/systemd/system/dnf-makecache.service
/usr/lib/systemd/system/dnf-makecache.timer
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/dnf
/usr/share/locale/ar/LC_MESSAGES/dnf.mo
/usr/share/locale/bg/LC_MESSAGES/dnf.mo
/usr/share/locale/bn/LC_MESSAGES/dnf.mo
/usr/share/locale/bn_IN/LC_MESSAGES/dnf.mo
Чтобы увидеть только файлы конфигурации, установленные пакетом, используйте опцию -qc. Давайте проверим пакет openssh-clients.
rpm -qc openssh-clients
Это выведет список файлов конфигурации, связанных с SSH-клиентами.
/etc/ssh/ssh_config
/etc/ssh/ssh_config.d/50-redhat.conf
Наконец, чтобы просмотреть журнал изменений (changelog) пакета, используйте --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 (Dandified YUM) для управления пакетами ПО. dnf — это менеджер пакетов по умолчанию в Red Hat Enterprise Linux 9, который используется для установки, обновления и удаления пакетов, а также для управления репозиториями. Он автоматически обрабатывает зависимости, что делает управление ПО намного проще, чем при использовании только rpm.
Сначала выведем список всех доступных и установленных пакетов, в названии которых есть "http". Это даст вам представление о том, какие пакеты связаны с HTTP-сервисами.
sudo dnf list 'http*'
Вы увидите список пакетов с указанием того, установлены они или доступны для установки.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
http-parser.i686 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
http-parser.x86_64 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-client.noarch 4.5.13-2.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-core.noarch 4.4.13-6.el9 rhel-9-for-x86_64-appstream-rpms
httpd.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-devel.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-filesystem.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-manual.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-tools.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
Теперь давайте поищем пакеты, содержащие "web server" в названии, кратком описании или описании. Опция search all полезна для более широкого поиска.
sudo dnf search all 'web server'
Эта команда вернет список пакетов, соответствующих поисковым запросам.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
================== Summary & Description Matched: web server ===================
nginx.x86_64 : A high performance web server and reverse proxy server
pcp-pmda-weblog.x86_64 : Performance Co-Pilot (PCP) metrics from web server logs
========================= Summary Matched: web server ==========================
libcurl.x86_64 : A library for getting files from web servers
libcurl.i686 : A library for getting files from web servers
======================= Description Matched: web server ========================
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
git-instaweb.noarch : Repository browser in gitweb
http-parser.i686 : HTTP request/response parser for C
http-parser.x86_64 : HTTP request/response parser for C
httpd.x86_64 : Apache HTTP Server
mod_auth_openidc.x86_64 : OpenID Connect auth module for Apache HTTP Server
mod_jk.x86_64 : Tomcat mod_jk connector for Apache
mod_security.x86_64 : Security module for the Apache HTTP Server
varnish.i686 : High-performance HTTP accelerator
varnish.x86_64 : High-performance HTTP accelerator
Получим подробную информацию о пакете httpd, который является Apache HTTP Server.
sudo dnf info httpd
Это отобразит исчерпывающие детали о пакете, включая его размер, лицензию и описание.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
Name : httpd
Version : 2.4.51
Release : 5.el9
Architecture : x86_64
Size : 1.5 M
Source : httpd-2.4.51-5.el9.src.rpm
Repository : rhel-9-for-x86_64-appstream-rpms
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Теперь установим пакет httpd. Для этой операции вам потребуются права sudo.
sudo dnf install httpd -y | tee ~/project/httpd-install.txt
Флаг -y автоматически отвечает "yes" на все запросы, что полезно для скриптов, но используйте его с осторожностью в производственных средах.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 rhel-9-for-x86_64-appstream-rpms
126 k
apr-util x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
106 k
apr-util-bdb x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
13 k
apr-util-openssl x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
15 k
httpd-filesystem noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
14 k
httpd-tools x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
100 k
mailcap noarch 2.1.49-5.el9 rhel-9-for-x86_64-baseos-rpms
36 k
mod_http2 x86_64 1.15.7-5.el9 rhel-9-for-x86_64-appstream-rpms
150 k
redhat-logos-httpd noarch 90.4-1.el9 rhel-9-for-x86_64-appstream-rpms
20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
Downloading Packages:
... (downloading package details omitted) ...
Running transaction
... (installation progress omitted) ...
Installed:
apr-1.7.0-11.el9.x86_64
apr-util-1.6.1-20.el9.x86_64
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
httpd-tools-2.4.51-5.el9.x86_64
mailcap-2.1.49-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Вы можете убедиться, что httpd установлен, сделав запрос через rpm:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Теперь удалим пакет httpd.
sudo dnf remove httpd -y | tee ~/project/httpd-remove.txt
Это удалит пакет httpd и все зависимости, которые больше не нужны другим установленным пакетам.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Removing:
httpd x86_64 2.4.51-5.el9 @appstream 4.7 M
Removing dependent packages:
apr-util-bdb x86_64 1.6.1-20.el9 @appstream 13 k
apr-util-openssl x86_64 1.6.1-20.el9 @appstream 15 k
httpd-filesystem noarch 2.4.51-5.el9 @appstream 14 k
mod_http2 x86_64 1.15.7-5.el9 @appstream 150 k
redhat-logos-httpd noarch 90.4-1.el9 @appstream 20 k
Transaction Summary
================================================================================
Remove 6 Packages
Freed space: 4.9 M
... (transaction progress omitted) ...
Removed:
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Вы можете подтвердить его удаление:
rpm -q httpd
package httpd is not installed
Это демонстрирует базовые команды dnf для установки и удаления пакетов ПО.
Управление репозиториями ПО DNF
На этом этапе вы узнаете, как управлять репозиториями ПО DNF. Репозитории — это места, где хранятся пакеты ПО и откуда dnf их извлекает. Понимание того, как выводить список, включать, отключать и добавлять репозитории, критически важно для контроля того, какое ПО доступно в вашей системе.
Сначала выведем список всех настроенных репозиториев DNF и их статус (включен или отключен).
sudo dnf repolist all > ~/project/dnf-repolist.txt
cat ~/project/dnf-repolist.txt
Вы увидите список ID репозиториев, их имен и текущего статуса. Точные имена репозиториев зависят от образа, используемого для лабораторной работы.
repo id repo name status
rhui-rhel-10-for-x86_64-appstream-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-baseos-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-appstream-rhui-debug-rpms Red Hat Enterprise disabled
Команда dnf config-manager — это мощный инструмент для управления конфигурациями репозиториев. Вы можете использовать его для включения или отключения репозиториев. Например, попробуем включить гипотетический отладочный репозиторий. Хотя этот конкретный репозиторий может не существовать или быть недоступным в этой лабораторной среде, команда демонстрирует синтаксис.
sudo dnf config-manager --enable rhel-9-server-debug-rpms 2>&1 | tee ~/project/dnf-enable-debug.txt
Вы увидите сообщения об управлении подписками и ошибку, указывающую на то, что репозиторий не найден, что ожидаемо в этой среде.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-server-debug-rpms.
Теперь попробуем отключить репозиторий. В качестве примера возьмем rhel-9-for-x86_64-appstream-rpms. Примечание: Это конкретное имя репозитория не существует в текущем образе лабораторной работы, но команда демонстрирует синтаксис.
sudo dnf config-manager --disable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-disable-appstream.txt
Вы увидите сообщения об управлении подписками и ошибку, указывающую на то, что репозиторий не существует в этой среде.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.
Давайте убедимся, что этого имени репозитория не существует в текущей системе:
sudo dnf repolist all | grep rhel-9-for-x86_64-appstream-rpms
Как и ожидалось, вывода не будет, так как этого репозитория нет в текущем образе лабораторной работы.
(no output)
Попробуем ту же команду включения, чтобы подтвердить, что репозиторий не существует:
sudo dnf config-manager --enable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-enable-appstream.txt
Снова вы увидите то же сообщение об ошибке:
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: 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/" 2>&1 | tee ~/project/dnf-add-repo.txt
Вы увидите вывод, указывающий на то, что был создан новый файл .repo.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Adding repo from: https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
Вы можете проверить только что созданный файл .repo в /etc/yum.repos.d/. Имя файла будет производным от URL.
ls /etc/yum.repos.d/
Вы должны увидеть файл, похожий на dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo, наряду с существующими файлами репозиториев.
dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo redhat.repo ubi.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 | tee ~/project/dnf-history.txt
Вы увидите таблицу, в которой каждая транзакция указана с ID, использованной командной строкой, датой и временем, выполненным действием (действиями) и количеством измененных пакетов.
ID | Command line | Date and time | Action(s) | Altered
--------------------------------------------------------------------------------
3 | install httpd | 2024-04-22 08:00 | Install | 10
2 | remove httpd | 2024-04-22 08:01 | Remove | 6
1 | | 2024-04-22 07:50 | Install | 767 EE
Столбец ID особенно важен, так как он позволяет ссылаться на конкретные транзакции. В этой лабораторной работе вы можете захватить ID транзакции удаления httpd из вывода истории и повторно использовать его в следующих командах.
HTTPD_REMOVE_ID=$(sudo dnf history | awk '/remove httpd/ && $1 ~ /^[0-9]+$/ {print $1; exit}')
echo "$HTTPD_REMOVE_ID"
sudo dnf history info "$HTTPD_REMOVE_ID" | tee ~/project/dnf-history-info.txt
Эта команда предоставляет исчерпывающую информацию о выбранной транзакции, включая удаленные пакеты, их версии и причину действия.
Transaction ID : 2
Begin time : Mon Apr 22 08:01:00 2024
Begin rpmdb : 777:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
End time : Mon Apr 22 08:01:05 2024 (5 seconds)
End rpmdb : 771:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
User : labex <labex>
Return Code : Success
Command Line : dnf remove httpd -y
Packages Altered:
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Одной из самых мощных функций истории DNF является возможность отмены (undo) или повторения (redo) транзакций. Давайте отменим транзакцию удаления httpd, повторно используя значение HTTPD_REMOVE_ID, которое вы только что получили.
sudo dnf history undo "$HTTPD_REMOVE_ID" -y | tee ~/project/dnf-history-undo.txt
Эта команда переустановит пакет httpd и его зависимости, которые были удалены в этой конкретной транзакции.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Undoing transaction 2, from Mon Apr 22 08:01:00 2024
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 ubi-9-appstream-rpms 126 k
apr-util x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 106 k
apr-util-bdb x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 13 k
apr-util-openssl x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 15 k
httpd-filesystem noarch 2.4.51-5.el9 ubi-9-appstream-rpms 14 k
httpd-tools x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 100 k
mailcap noarch 2.1.49-5.el9 ubi-9-baseos-rpms 36 k
mod_http2 x86_64 1.15.7-5.el9 ubi-9-appstream-rpms 150 k
redhat-logos-httpd noarch 90.4-1.el9 ubi-9-appstream-rpms 20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
... (installation progress omitted) ...
Complete!
Вы можете убедиться, что httpd снова установлен:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Наконец, удалим httpd еще раз, чтобы оставить систему в чистом состоянии для будущих лабораторных работ.
sudo dnf remove httpd -y | tee ~/project/dnf-history-final-remove.txt
... (output omitted) ...
Complete!
Этот этап продемонстрировал, как использовать dnf history для просмотра, изучения и даже отмены транзакций DNF, предоставляя мощные возможности для управления системой.
Резюме
В этой лабораторной работе мы изучили основные навыки управления пакетами ПО в Red Hat Enterprise Linux с помощью DNF. Мы начали с понимания команды subscription-manager, критически важной для регистрации систем в Red Hat и доступа к их сети доставки контента, даже несмотря на то, что полная регистрация была невозможна в симулированной среде.
Затем мы изучили, как запрашивать информацию об RPM-пакетах, устанавливать и удалять ПО с помощью DNF, управлять репозиториями ПО DNF и просматривать историю транзакций DNF. Эти шаги дали полное представление о возможностях DNF для эффективного управления программным обеспечением.



