はじめに
この実験では、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
システムはまだ登録されていないため、コマンドはその状態を直接報告します。
+-------------------------------------------+
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.x86_64
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 を使用します。これは、パッケージのアップデートや修正の履歴を把握するのに役立ちます。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/
既存のリポジトリファイルとともに、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 列は、特定のトランザクションを参照するために特に重要です。この実験では、履歴出力から 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 の機能の全体像を把握しました。



