hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

dnfコマンドの使い方



1 dnfコマンドとは?

yumの後継となるパッケージ管理ソフトです。CentOS7まではyumが使われていましたが、CentOS8ではdnfを使います。

2 検証環境

CentOS版数は以下のとおりです。仮想マシンは最小限の構成で作成しました。

[root@server ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011

カーネル版数は以下のとおりです。

[root@server ~]# uname -r
4.18.0-240.el8.x86_64

dnfコマンドの版数は以下のとおりです。

[root@server ~]# dnf --version
4.2.23
  インストール済み: dnf-0:4.2.23-4.el8.noarch (日時: 2022年02月20日 08時27分57秒)
  ビルド      : CentOS Buildsys <bugs@centos.org>  (日時: 2020年08月04日 18時52分03秒)

  インストール済み: rpm-0:4.14.3-4.el8.x86_64 (日時: 2022年02月20日 08時21分29秒)
  ビルド      : CentOS Buildsys <bugs@centos.org>  (日時: 2020年07月21日 17時36分08秒)

3 DNFに関連するファイル

DNFに関連するファイルは、以下のものがあります。manより抜粋したものを以下に示します。

  • /var/cache/dnf:キャッシュファイル
  • /etc/dnf/dnf.conf:設定ファイル
  • /etc/yum.repos.d/:リポジトリ用のファイルを置くディレクト
FILES
       Cache Files
              /var/cache/dnf

       Main Configuration
              /etc/dnf/dnf.conf

       Repository
              /etc/yum.repos.d/

4 リポジトリに関する操作

4.1 CentOS Linux 8 からCentOS Stream 8への移行

パッケージをインストールしようとすると(2022/3/14時点)、下記エラーが発生して、パッケージのインストールができません。

[root@server ~]# dnf -y install bc
CentOS Linux 8 - AppStream                                                                                                       65  B/s |  38  B     00:00
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist

下記ページの内容にしたがって、swapコマンドを使って、centos-linux-reposパッケージを削除してcentos-stream-reposパッケージをインストールします。
https://centos.org/centos-stream/

[root@server ~]# dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
CentOS Linux 8 - Extras                                                                                                         8.1 kB/s |  11 kB     00:01
依存関係が解決しました。
================================================================================================================================================================
 パッケージ                                    アーキテクチャー                 バージョン                            リポジトリー                        サイズ
================================================================================================================================================================
インストール:
 centos-stream-repos                           noarch                           8-3.el8                               extras                               19 k
アップグレード:
 centos-gpg-keys                               noarch                           1:8-3.el8                             extras                               12 k
削除中:
 centos-linux-repos                            noarch                           8-2.el8                               @anaconda                            26 k

トランザクションの概要
================================================================================================================================================================
インストール    1 パッケージ
アップグレード  1 パッケージ
削除            1 パッケージ

ダウンロードサイズの合計: 32 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): centos-gpg-keys-8-3.el8.noarch.rpm                                                                                        38 kB/s |  12 kB     00:00
(2/2): centos-stream-repos-8-3.el8.noarch.rpm                                                                                    39 kB/s |  19 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                             23 kB/s |  32 kB     00:01
警告: /var/cache/dnf/extras-2770d521ba03e231/packages/centos-stream-repos-8-3.el8.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 8483c65d: NOKEY
CentOS Linux 8 - Extras                                                                                                         1.6 MB/s | 1.6 kB     00:00
GPG 鍵 0x8483C65D をインポート中:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                        1/1
  アップグレード   : centos-gpg-keys-1:8-3.el8.noarch                                                                                                       1/4
  インストール     : centos-stream-repos-8-3.el8.noarch                                                                                                     2/4
  削除             : centos-linux-repos-8-2.el8.noarch                                                                                                      3/4
警告: /etc/yum.repos.d/CentOS-Linux-Extras.repo は /etc/yum.repos.d/CentOS-Linux-Extras.repo.rpmsave として保存されました。

  整理             : centos-gpg-keys-1:8-2.el8.noarch                                                                                                       4/4
  検証             : centos-stream-repos-8-3.el8.noarch                                                                                                     1/4
  検証             : centos-gpg-keys-1:8-3.el8.noarch                                                                                                       2/4
  検証             : centos-gpg-keys-1:8-2.el8.noarch                                                                                                       3/4
  検証             : centos-linux-repos-8-2.el8.noarch                                                                                                      4/4

アップグレード済み:
  centos-gpg-keys-1:8-3.el8.noarch

インストール済み:
  centos-stream-repos-8-3.el8.noarch

削除しました:
  centos-linux-repos-8-2.el8.noarch

完了しました!

distro-syncコマンドを実行すると、最新のパッケージがインストールされます。

[root@server ~]# dnf distro-sync

4.2 リポジトリ一覧を表示する方法(--all)

--allは、/etc/yum.repos.d/配下に存在するrepoファイルの中で有効(enabled=1)、無効(enabled=0)のリポジトリを全て表示するオプションです。

[root@server ~]# dnf repolist --all
repo id                                                            repo の名前                                                                            状態
appstream                                                          CentOS Stream 8 - AppStream                                                            有効化
appstream-source                                                   CentOS Stream 8 - AppStream - Source                                                   無効化
baseos                                                             CentOS Stream 8 - BaseOS                                                               有効化
baseos-source                                                      CentOS Stream 8 - BaseOS - Source                                                      無効化
debuginfo                                                          CentOS Stream 8 - Debuginfo                                                            無効化
extras                                                             CentOS Stream 8 - Extras                                                               有効化
extras-source                                                      CentOS Stream 8 - Extras - Source                                                      無効化
ha                                                                 CentOS Stream 8 - HighAvailability                                                     無効化
ha-source                                                          CentOS Stream 8 - HighAvailability - Source                                            無効化
media-appstream                                                    CentOS Stream 8 - Media - AppStream                                                    無効化
media-baseos                                                       CentOS Stream 8 - Media - BaseOS                                                       無効化
powertools                                                         CentOS Stream 8 - PowerTools                                                           無効化
powertools-source                                                  CentOS Stream 8 - PowerTools - Source                                                  無効化
resilientstorage                                                   CentOS Stream 8 - ResilientStorage                                                     無効化
resilientstorage-source                                            CentOS Stream 8 - ResilientStorage - Source                                            無効化
rt                                                                 CentOS Stream 8 - RealTime                                                             無効化
rt-source                                                          CentOS Stream 8 - RT - Source                                                          無効化
[root@server ~]#

4.3 有効なリポジトリを表示する方法(--enabled)

--enabledは、/etc/yum.repos.d/配下に存在するrepoファイルの中で有効(enabled=1)なリポジトリを表示するオプションです。

[root@server ~]# dnf repolist --enabled
repo id                                                                repo の名前
appstream                                                              CentOS Stream 8 - AppStream
baseos                                                                 CentOS Stream 8 - BaseOS
extras                                                                 CentOS Stream 8 - Extras

--enabledは省略することができます。

[root@server ~]# dnf repolist
repo id                                             repo の名前
appstream                                           CentOS Linux 8 - AppStream
baseos                                              CentOS Linux 8 - BaseOS
extras                                              CentOS Linux 8 - Extras

4.4 無効なリポジトリを表示する方法(--disabled)

--disabledは、/etc/yum.repos.d/配下に存在するrepoファイルの中で無効(enabled=0)なリポジトリを表示するオプションです。

[root@server ~]# dnf repolist --disabled
repo id                                                               repo の名前
appstream-source                                                      CentOS Stream 8 - AppStream - Source
baseos-source                                                         CentOS Stream 8 - BaseOS - Source
debuginfo                                                             CentOS Stream 8 - Debuginfo
extras-source                                                         CentOS Stream 8 - Extras - Source
ha                                                                    CentOS Stream 8 - HighAvailability
ha-source                                                             CentOS Stream 8 - HighAvailability - Source
media-appstream                                                       CentOS Stream 8 - Media - AppStream
media-baseos                                                          CentOS Stream 8 - Media - BaseOS
powertools                                                            CentOS Stream 8 - PowerTools
powertools-source                                                     CentOS Stream 8 - PowerTools - Source
resilientstorage                                                      CentOS Stream 8 - ResilientStorage
resilientstorage-source                                               CentOS Stream 8 - ResilientStorage - Source
rt                                                                    CentOS Stream 8 - RealTime
rt-source                                                             CentOS Stream 8 - RT - Source

4.5 リポジトリを無効にする方法(--disable, --set-disable)

有効なリポジトリを確認します。

[root@server ~]# dnf repolist
repo id                                             repo の名前
appstream                                           CentOS Linux 8 - AppStream
baseos                                              CentOS Linux 8 - BaseOS
extras                                              CentOS Linux 8 - Extras

上記リポジトリの中から、extrasリポジトリを無効にしてみます。

[root@server ~]# dnf config-manager --disable extras

有効なリポジトリを確認してみます。extrasリポジトリを無効化したため、有効なリポジトリ一覧に表示されていないことがわかります。

[root@server ~]# dnf repolist
repo id                                             repo の名前
appstream                                           CentOS Linux 8 - AppStream
baseos                                              CentOS Linux 8 - BaseOS

4.6 リポジトリを有効化する方法(--enable, --set-enabled)

extrasリポジトリを有効にしてみます。

[root@server ~]# dnf config-manager --enable extras

有効なリポジトリを確認してみます。extrasリポジトリが有効なリポジトリ覧に表示されていることがわかります。

[root@server ~]# dnf repolist
repo id                                             repo の名前
appstream                                           CentOS Linux 8 - AppStream
baseos                                              CentOS Linux 8 - BaseOS
extras                                              CentOS Linux 8 - Extras

4.7 リポジトリの詳細情報を表示する方法(-v)

[root@server ~]# dnf repolist -v
ロードされたプラグイン: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.23
cachedir: /var/cache/dnf
メタデータの期限切れの最終確認: 0:02:02 時間前の 2022年03月14日 04時08分45秒 に実施しました。
Repo-id            : appstream
Repo-name          : CentOS Stream 8 - AppStream
Repo-revision      : 8-stream
Repo-distro-tags      : [cpe:/o:centos-stream:centos-stream:8]:  ,  , 8, C, O, S, S, a, e, e, m, n, r, t, t
Repo-updated       : 2022年03月10日 18時15分37秒
Repo-pkgs          : 16,884
Repo-available-pkgs: 15,106
Repo-size          : 38 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock
Repo-baseurl       : http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/8-stream/AppStream/x86_64/os/ (9 more)
Repo-expire        : 172,800 秒 (最終: 2022年03月14日 04時08分21秒)
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-AppStream.repo

Repo-id            : baseos
Repo-name          : CentOS Stream 8 - BaseOS
Repo-revision      : 8-stream
Repo-distro-tags      : [cpe:/o:centos-stream:centos-stream:8]:  ,  , 8, C, O, S, S, a, e, e, m, n, r, t, t
Repo-updated       : 2022年03月10日 18時14分34秒
Repo-pkgs          : 7,973
Repo-available-pkgs: 7,971
Repo-size          : 10 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=BaseOS&infra=stock
Repo-baseurl       : http://ftp.iij.ad.jp/pub/linux/centos/8-stream/BaseOS/x86_64/os/ (9 more)
Repo-expire        : 172,800 秒 (最終: 2022年03月14日 04時08分38秒)
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-BaseOS.repo

Repo-id            : extras
Repo-name          : CentOS Stream 8 - Extras
Repo-revision      : 1646945150
Repo-updated       : 2022年03月10日 15時45分50秒
Repo-pkgs          : 86
Repo-available-pkgs: 86
Repo-size          : 929 k
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=extras&infra=stock
Repo-baseurl       : http://ftp.tsukuba.wide.ad.jp/Linux/centos/8-stream/extras/x86_64/os/ (9 more)
Repo-expire        : 172,800 秒 (最終: 2022年03月14日 04時08分45秒)
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-Extras.repo
総パッケージ: 24,943

4.8 dnfキャッシュ等をクリアする方法(clean)

[root@server ~]# dnf clean all
40 ファイルが削除されました

5 rpmパッケージに関する操作

5.1 rpmパッケージをインストールする方法

bcパッケージをインストールしてみます。bcパッケージはサイズが小さく、最小構成で作成した仮想マシンにデフォルトではインストールされていなかったためです。

まず、bcパッケージがインストールされていないことを確認します。

[root@server ~]# rpm -qa|grep ^bc

bcパッケージをインストールします。

[root@server ~]# dnf -y install bc

bcパッケージがインストールされたことを確認します。

[root@server ~]# rpm -qa|grep ^bc
bc-1.07.1-5.el8.x86_64

5.2 rpmパッケージをアンインストールする方法

さきほどインストールしたbcパッケージをアンインストールしてみます。

[root@server ~]# dnf -y remove bc

bcパッケージがアンインストールされたことを確認します。

[root@server ~]# rpm -qa|grep ^bc
[root@server ~]#

6 パッケージをダウンロードする方法

6.1 rpmパッケージをダウンロードする方法

bcのrpmパッケージをダウンロードしてみます。

[root@server ~]# dnf download bc
メタデータの期限切れの最終確認: 0:04:06 時間前の 2022年03月14日 06時37分26秒 に実施しました。
bc-1.07.1-5.el8.x86_64.rpm

ダウンロードしたbcパッケージを確認します。

[root@server ~]# ls -l bc*
-rw-r--r--. 1 root root 132040  3月 14 06:41 bc-1.07.1-5.el8.x86_64.rpm

6.2 src.rpmパッケージをダウンロードする方法(--source)

bcのsrc.rpmパッケージをダウンロードしてみます。

[root@server ~]# dnf download bc --source
appstream-source リポジトリーの有効化
baseos-source リポジトリーの有効化
extras-source リポジトリーの有効化
CentOS Stream 8 - BaseOS - Source                                                                                               779 kB/s | 611 kB     00:00
CentOS Stream 8 - AppStream - Source                                                                                            1.0 MB/s | 1.2 MB     00:01
CentOS Stream 8 - Extras - Source                                                                                                17 kB/s |  11 kB     00:00
bc-1.07.1-5.el8.src.rpm

ダウンロードしたsrc.rpmパッケージを確認します。

[root@server ~]# ls -l bc-1.07.1-5.el8.src.rpm
-rw-r--r--. 1 root root 442535  3月 14 06:43 bc-1.07.1-5.el8.src.rpm

6.3 パッケージをダウンロードするサイトのURLを表示する方法(--url)

[root@server ~]# dnf download bc --url
メタデータの期限切れの最終確認: 0:03:43 時間前の 2022年03月14日 06時44分12秒 に実施しました。
http://ftp.iij.ad.jp/pub/linux/centos/8-stream/BaseOS/x86_64/os/Packages/bc-1.07.1-5.el8.x86_64.rpm

7 パッケージを提供しているリポジトリを検索する方法(provides)

bcパッケージを提供しているリポジトリを確認します。bcパッケージはbaseosリポジトリで提供していることがわかります。

[root@server ~]# dnf provides bc
メタデータの期限切れの最終確認: 0:04:35 時間前の 2022年03月14日 06時44分12秒 に実施しました。
bc-1.07.1-5.el8.x86_64 : GNU's bc (a numeric processing language) and dc (a calculator)
Repo        : baseos
一致:
提供する    : bc = 1.07.1-5.el8

8 dnfコマンドの操作履歴を表示する方法(history)

8.1 操作履歴を表示する方法

[root@server ~]# dnf history
ID     | コマンドライン                                                                                            | 日時             | 動作           | 変更さ
----------------------------------------------------------------------------------------------------------------------------------------------------------------
     5 | install bash-completion                                                                                   | 2022-03-14 06:53 | Install        |    1
     4 | -y remove bc                                                                                              | 2022-03-14 06:38 | Removed        |    1
     3 | -y install bc                                                                                             | 2022-03-14 06:37 | Install        |    1
     2 | --disablerepo * --enablerepo extras swap centos-linux-repos centos-stream-repos                           | 2022-03-14 04:07 | E, I, U        |    3 EE
     1 |                                                                                                           | 2022-03-14 03:19 | Install        |  615 EE

8.2 詳細情報を表示する方法(info Transaction ID)

[root@server ~]# dnf history info 5
トランザクション ID : 5
開始時間            : 2022年03月14日 06時53分31秒
開始 rpmdb          : 611:09eb323ccf573082c975ea6d772a9cd118af0c41
終了時間            : 2022年03月14日 06時53分32秒 (1 秒)
終了 rpmdb          : 612:6b13d628cf5574614b25d033189523f415f21aa2
ユーザー            : root <root>
終了コード          : 成功
Releasever     : 8
コマンドライン      : install bash-completion
コメント        :
変更されたパッケージ:
    インストール bash-completion-1:2.7-5.el8.noarch @baseos

9 epelリポジトリの追加/削除方法

9.1 追加方法

epel-releaseパッケージをインストールします。

[root@server ~]# dnf -y install epel-release

epel-releaseパッケージがインストールされたことがわかります。

[root@server ~]# rpm -qa|grep epel-release
epel-release-8-11.el8.noarch

epel-releaseパッケージをインストールすると、/etc/yum.repos.d/配下に以下のrepoファイルが作成されます。

[root@server ~]# ls -l /etc/yum.repos.d/epel*
-rw-r--r--. 1 root root 1480  6月  7  2021 /etc/yum.repos.d/epel-modular.repo
-rw-r--r--. 1 root root 1562  6月  7  2021 /etc/yum.repos.d/epel-playground.repo
-rw-r--r--. 1 root root 1579  6月  7  2021 /etc/yum.repos.d/epel-testing-modular.repo
-rw-r--r--. 1 root root 1516  6月  7  2021 /etc/yum.repos.d/epel-testing.repo
-rw-r--r--. 1 root root 1417  6月  7  2021 /etc/yum.repos.d/epel.repo

リポジトリの一覧を確認します。epelとepel-modularが有効化されています。その他のリポジトリは無効化されていることがわかります。

[root@server ~]# dnf repolist epel*
repo id                                                   repo の名前                                                                                          状態
epel                                                      Extra Packages for Enterprise Linux 8 - x86_64                                                       有効化
epel-debuginfo                                            Extra Packages for Enterprise Linux 8 - x86_64 - Debug                                               無効化
epel-modular                                              Extra Packages for Enterprise Linux Modular 8 - x86_64                                               有効化
epel-modular-debuginfo                                    Extra Packages for Enterprise Linux Modular 8 - x86_64 - Debug                                       無効化
epel-modular-source                                       Extra Packages for Enterprise Linux Modular 8 - x86_64 - Source                                      無効化
epel-playground                                           Extra Packages for Enterprise Linux 8 - Playground - x86_64                                          無効化
epel-playground-debuginfo                                 Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Debug                                  無効化
epel-playground-source                                    Extra Packages for Enterprise Linux 8 - Playground - x86_64 - Source                                 無効化
epel-source                                               Extra Packages for Enterprise Linux 8 - x86_64 - Source                                              無効化
epel-testing                                              Extra Packages for Enterprise Linux 8 - Testing - x86_64                                             無効化
epel-testing-debuginfo                                    Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Debug                                     無効化
epel-testing-modular                                      Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64                                     無効化
epel-testing-modular-debuginfo                            Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 - Debug                             無効化
epel-testing-modular-source                               Extra Packages for Enterprise Linux Modular 8 - Testing - x86_64 - Source                            無効化
epel-testing-source                                       Extra Packages for Enterprise Linux 8 - Testing - x86_64 - Source                                    無効化

epelリポジトリに存在するhping3パッケージをインストールしてみます。

[root@server ~]# dnf -y install hping3
メタデータの期限切れの最終確認: 0:14:00 時間前の 2022年03月14日 08時37分46秒 に実施しました。
依存関係が解決しました。
=====================================================================================================================================================================
 パッケージ                          アーキテクチャー                    バージョン                                        リポジトリー                        サイズ
=====================================================================================================================================================================
インストール:
 hping3                              x86_64                              0.0.20051105-33.el8                               epel                                105 k
依存関係のインストール:
 tcl                                 x86_64                              1:8.6.8-2.el8                                     baseos                              1.1 M

トランザクションの概要
=====================================================================================================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 1.2 M
インストール済みのサイズ: 4.4 M
パッケージのダウンロード:
(1/2): hping3-0.0.20051105-33.el8.x86_64.rpm                                                                                         806 kB/s | 105 kB     00:00
(2/2): tcl-8.6.8-2.el8.x86_64.rpm                                                                                                    3.4 MB/s | 1.1 MB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                 723 kB/s | 1.2 MB     00:01
警告: /var/cache/dnf/epel-6519ee669354a484/packages/hping3-0.0.20051105-33.el8.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 2f86d6a1: NOKEY
Extra Packages for Enterprise Linux 8 - x86_64                                                                                       1.6 MB/s | 1.6 kB     00:00
GPG 鍵 0x2F86D6A1 をインポート中:
 Userid     : "Fedora EPEL (8) <epel@fedoraproject.org>"
 Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                             1/1
  インストール     : tcl-1:8.6.8-2.el8.x86_64                                                                                                                    1/2
  scriptletの実行中: tcl-1:8.6.8-2.el8.x86_64                                                                                                                    1/2
  インストール     : hping3-0.0.20051105-33.el8.x86_64                                                                                                           2/2
  scriptletの実行中: hping3-0.0.20051105-33.el8.x86_64                                                                                                           2/2
  検証             : tcl-1:8.6.8-2.el8.x86_64                                                                                                                    1/2
  検証             : hping3-0.0.20051105-33.el8.x86_64                                                                                                           2/2

インストール済み:
  hping3-0.0.20051105-33.el8.x86_64                                                     tcl-1:8.6.8-2.el8.x86_64

完了しました!

9.2 削除方法

epel-releaseパッケージを削除します。

[root@server ~]# dnf -y remove epel-release

epel-releaseパッケージが削除されたことがわかります。

[root@server ~]# rpm -qa|grep epel-release
[root@server ~]#

10 debuginfoパッケージをインストールする方法(debuginfo-install)

bcパッケージのdebuginfoパッケージをインストールします。

[root@server ~]# dnf debuginfo-install bc

bc-debuginfoパッケージがインストールされたことがわかります。

[root@server ~]# rpm -qa|grep ^bc
bc-1.07.1-5.el8.x86_64
bc-debugsource-1.07.1-5.el8.x86_64
bc-debuginfo-1.07.1-5.el8.x86_64

11 リポジトリを追加する方法

カーネルのkernel-debuginfoパッケージをインストールしてみます。kernel-debuginfoパッケージをインストールすることで、crashコマンドでダンプファイルを参照することができるようになります。

まず、カーネル版数を確認します。

[root@server ~]# uname -r
4.18.0-240.el8.x86_64

debuginfoのリポジトリを追加します。

[root@server ~]# dnf config-manager --add-repo=http://debuginfo.centos.org/8/x86_64/

debuginfoのリポジトリを追加すると、下記のrepoファイルが作成されます。

[root@server ~]# cat /etc/yum.repos.d/debuginfo.centos.org_8_x86_64_.repo
[debuginfo.centos.org_8_x86_64_]
name=created by dnf config-manager from http://debuginfo.centos.org/8/x86_64/
baseurl=http://debuginfo.centos.org/8/x86_64/
enabled=1

リポジトリ一覧を確認します。debuginfoのリポジトリが追加されたことがわかります。

[root@server ~]# dnf repolist
repo id                                                    repo の名前
appstream                                                  CentOS Stream 8 - AppStream
baseos                                                     CentOS Stream 8 - BaseOS
debuginfo.centos.org_8_x86_64_                             created by dnf config-manager from http://debuginfo.centos.org/8/x86_64/
extras                                                     CentOS Stream 8 - Extras

kernel-debuginfoパッケージをインストールします。

[root@server ~]# dnf install kernel-debuginfo-4.18.0-240.el8.x86_64
メタデータの期限切れの最終確認: 0:02:58 時間前の 2022年03月14日 07時53分05秒 に実施しました。
依存関係が解決しました。
================================================================================================================================================================
 パッケージ                                      アーキテクチャー        バージョン                       リポジトリー                                    サイズ
================================================================================================================================================================
インストール:
 kernel-debuginfo                                x86_64                  4.18.0-240.el8                   debuginfo.centos.org_8_x86_64_                  532 M
依存関係のインストール:
 kernel-debuginfo-common-x86_64                  x86_64                  4.18.0-240.el8                   debuginfo.centos.org_8_x86_64_                   61 M

トランザクションの概要
================================================================================================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 593 M
インストール済みのサイズ: 3.1 G
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): kernel-debuginfo-common-x86_64-4.18.0-240.el8.x86_64.rpm                                                                 652 kB/s |  61 MB     01:35
(2/2): kernel-debuginfo-4.18.0-240.el8.x86_64.rpm                                                                               985 kB/s | 532 MB     09:13
----------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                            1.1 MB/s | 593 MB     09:13
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                        1/1
  インストール     : kernel-debuginfo-common-x86_64-4.18.0-240.el8.x86_64                                                                                   1/2
  インストール     : kernel-debuginfo-4.18.0-240.el8.x86_64                                                                                                 2/2
  scriptletの実行中: kernel-debuginfo-4.18.0-240.el8.x86_64                                                                                                 2/2
  検証             : kernel-debuginfo-4.18.0-240.el8.x86_64                                                                                                 1/2
  検証             : kernel-debuginfo-common-x86_64-4.18.0-240.el8.x86_64                                                                                   2/2

インストール済み:
  kernel-debuginfo-4.18.0-240.el8.x86_64                                  kernel-debuginfo-common-x86_64-4.18.0-240.el8.x86_64

完了しました!

11 デバッグログ

dnfコマンドを実行すると、/var/log/dnf.logにログが出力されます。

[root@server ~]# less /var/log/dnf.log
2022-03-14T07:31:57Z INFO --- logging initialized ---
2022-03-14T07:31:57Z DDEBUG timer: config: 9 ms
2022-03-14T07:31:57Z DEBUG ロードされたプラグイン: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
-snip-

Z 参考情報

私が業務や記事執筆で参考にした書籍を以下のページに記載します。
Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ

DNF config-manager Plugin — dnf-plugins-core 4.4.0-1 documentation