はじめに
この実験では、DNF を使用して Red Hat Enterprise Linux (RHEL) システム上のソフトウェアパッケージを管理するハンズオン経験を積みます。まず、シミュレートされた環境であっても、Red Hat サポート登録のための subscription-manager コマンドについて理解することから始めます。その後、RPM パッケージ情報の取得と解釈方法を学び、DNF を使用したソフトウェアパッケージのインストールと削除をマスターします。
さらに、この実験では、DNF ソフトウェアリポジトリの追加、有効化、無効化などの管理方法についてガイドします。最後に、DNF のトランザクション履歴を表示および理解する方法を学び、パッケージ管理操作の包括的な概要を把握します。
注: この実験では、パッケージをダウンロードしてリポジトリにアクセスするためにネットワーク接続が必要です。LabEx Pro ユーザーのみが利用できます。
Red Hat サポートへのシステムの登録
このステップでは、subscription-manager コマンドを使用して Red Hat サポートにシステムを登録する方法を学びます。このシミュレートされた環境では完全な Red Hat サブスクリプションは利用できませんが、subscription-manager コマンドを理解することは、Red Hat Enterprise Linux システム上でソフトウェアを管理する上で不可欠です。このコマンドを使用すると、システムを Red Hat に登録し、サブスクリプションをアタッチして、ソフトウェアパッケージとアップデートのための 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
システムが登録されていないため、subscription-manager のバージョンに応じて、コマンドは Not registered または Unknown のいずれかを報告します。このシミュレートされた環境では、登録試行が失敗した後も Unknown はシステムにアクティブなサブスクリプションステータスがないことを示しています。
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Unknown
System Purpose Status: Unknown
この演習では、登録およびステータス確認のための 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
次に、特定のファイルを提供するパッケージを確認します。DNF リポジトリ設定ファイルを含むディレクトリである /etc/yum.repos.d を例として使用します。
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
これらのコマンドは、まず /usr/bin/dnfを所有する RPM を特定し、次にバージョン、リリース、アーキテクチャ、ライセンス、概要などの詳細なパッケージメタデータを表示します。
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
これにより、dnf パッケージによってインストールされた最初の 10 個のファイルが表示されます。
/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
Apache HTTP Server である httpd パッケージに関する詳細情報を取得しましょう。
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!
rpm をクエリして、httpd がインストールされていることを確認できます。
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 を指定して新しいリポジトリを追加することもできます。デモンストレーションの目的で、一般的な EPEL (Extra Packages for Enterprise Linux) リポジトリの URL の追加を試みます。(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/
/etc/yum.repos.d/ 内の新しく作成された .repo ファイルを検査できます。ファイル名は URL から派生します。
ls /etc/yum.repos.d/
既存のリポジトリファイル spolu とともに、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
このステップでは、RHEL でソフトウェアソースを管理するために不可欠なスキルである、DNF リポジトリのリスト表示、有効化、無効化、および追加の方法を示しました。
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 列は、特定のトランザクションを参照できるため特に重要です。この実験では、履歴出力から httpd 削除トランザクション ID をキャプチャし、次のコマンドで再利用できます。
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 履歴の最も強力な機能の 1 つは、トランザクションを取り消す(undo)またはやり直す(redo)機能です。先ほどキャプチャした HTTPD_REMOVE_ID の値を使用して、httpd 削除トランザクションを取り消してみましょう。
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 トランザクションを表示、検査、および元に戻す方法を示し、システム管理のための強力な機能を提供しました。
まとめ
この実験では、DNF を使用して Red Hat Enterprise Linux 上でソフトウェアパッケージを管理するための不可欠なスキルを学びました。まず、シミュレートされた環境では完全な登録は不可能でしたが、システムを Red Hat に登録し、コンテンツ配信ネットワークにアクセスするために重要な subscription-manager コマンドについて理解しました。
続いて、RPM パッケージ情報のクエリ、DNF を使用したソフトウェアのインストールと削除、DNF ソフトウェアリポジトリの管理、および DNF トランザクション履歴の表示方法を探索しました。これらのステップを通じて、効率的なソフトウェア管理における DNF の機能の包括的な概要を把握しました。



