Linuxコマンド辞典 dnfコマンド(パッケージ管理)

Yumの後継パッケージ管理コマンドの「dnf」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS

概要・使用方法

書式

$ dnf [オプション] [コマンド] [パッケージ名]

Yum(ヤム)の次世代代替のDnf(Dandified Yum:ダンディファイドヤム)コマンド。Yumの欠点とされる「ドキュメント化されていない」、「依存関係解決アルゴリズムが壊れている」、「内部関数をリファクタリングすることが不可能」、パフォーマンス面でも遅くメモリを大量に消費してメモリーリークを起こしがちという欠点を解消したパッケージ管理コマンドです。特に、YumはPython2で書かれており今後のPython3が主流となった場合、Yumは使用できない可能性があるのでPython3に対応しているDnfコマンドを使用するほうがよいでしょう。DnfコマンドはFedora22以降正式に標準パッケージ管理ソフトとして採用されました。RHEL系であればDnfコマンドは使用することができます。

YumとDnfはコマンド名がまったく異なっていますが、オプションや利用方法はほとんど変わっていません。また、Dnfコマンドではパッケージにモジュールという概念が導入され、パッケージのバージョン入れ替えなどが容易になりました。

DNFに関するファイル

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

ドキュメント

https://dnf.readthedocs.io/en/latest
https://github.com/rpm-software-management/dnf

依存関係

libsolv

  • SAT的なアルゴリズムの利用を通してパッケージの依存関係の解決
  • パッケージ管理とリポジトリの購読
  • C言語、修正BSDライセンス

hawkey

  • libsolvライブラリ用の高レベルなAPI
  • libsolvに最適のシンプルなC言語とPythonによって書かれたAPI
  • C言語、LGPLv2+

librepo

  • Linuxのリポジトリのメタデータとパッケージをダウンロードする為の(libcURLライクな) APIのライブラリはC言語とPythonから成っている。
  • C言語、LGPLv2+

libcomps

  • Libcompsは、Yumの 「yum.comps library」 に替わるものである。そのライブラリは、C言語にPython 2とPython 3を組み合わせて書かれている。
  • C言語、LGPLv2+

オプション

-y,
–assumeyes
問い合わせに対して「yes」を選択したとして実行する
–assumeno問い合わせに対して「no」を選択したとして実行する
-C,
–cacheonly
パッケージの情報を全くダウンロードせずに、キャッシュだけを使用する
–refreshコマンド実行前にパッケージ情報のキャッシュを強制的に更新する(※2)
-R 分,
–randomwait=分
最大待ち時間(分)を指定する
-c 構成ファイル名,
–config=構成ファイル名
構成ファイルを指定する
–enablerepo リポジトリID指定したリポジトリを有効にする
–disablerepo リポジトリID指定したリポジトリを無効にする
–repo リポジトリID指定したリポジトリだけを有効にする(複数ある場合は「–repo」「–repoid」を複数回使用する)
–repoid リポジトリID–repoと同じ
–nodocsドキュメントをインストールしない
–allowerasing依存関係を解決するためにインストール済みパッケージの削除を許可する
–installroot=パスインストール先を指定する
–downloaddir=パスダウンロード先を指定する
–downloadonlyファイルのダウンロードだけを行う
-x パッケージ名
–exclude=パッケージ名
除外するパッケージを指定する
–showduplicatesdnfのサブコマンド「info」「search」で重複しているものも表示する
–color=指定出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定する
-q,
–quiet
実行時にメッセージを出力しない
-v,
–verbose
詳しいメッセージを出力する

コマンド

パッケージ操作

install指定したパッケージに加え、依存関係があるパッケージもインストールする(既にインストールされていた場合は更新する)
reinstallパッケージを再インストールする
downgradeパッケージを以前のバージョンにダウングレードする
removeパッケージを依存関係のあるパッケージとともに削除する
autoremove依存関係のためにインストールされていた不要なパッケージを削除する
upgradeパッケージを更新する
※パッケージを指定しなかった場合はインストール済みの全パッケージが対象となる
upgrade-minimal不具合の修正や機能追加、セキュリティ対応など「重要な更新」だけを更新する
※パッケージを指定しなかった場合はインストール済みの全パッケージが対象となる
distro-sync最新の利用可能なバージョンへインストール済みパッケージを同期する
mark install指定したパッケージを手動でインストールしたものとする(autoremoveの対象外となることが利点、「dnf mark remove パッケージ名」でマークを削除)

パッケージ情報確認コマンド

infoパッケージの情報を表示する
listパッケージを一覧表示する
deplistパッケージの依存性の一覧を表示する
groupパッケージグループのサマリーを表示する
search指定した文字列でパッケージの詳細を検索する
repoqueryキーワードに一致するパッケージを検索する
providesファイル名などを指定して、該当するファイルを提供するパッケージを検索する
repolistソフトウェアリポジトリの構成を表示する

メンテナンス、その他コマンド

makecacheパッケージリストを格納したデータベース(リポジトリのメタデータ)をダウンロードし、キャッシュを作成/更新する
checkローカルのパッケージデータベースに問題がないかどうか確認する
check-update更新に利用できるパッケージを確認する
cleanキャッシュデータを削除する
shell対話型のシェル(DNFシェル)を実行する
updateinfoリポジトリの更新情報を表示する
historyパッケージのインストールや削除の履歴を表示する

パッケージのインストール

パッケージとインストールしようとするパッケージの依存関係含めてインストールする。パッケージ名の指定時にはTabキーで補完することが可能です。

$ dnf install [パッケージ名]

パッケージをインストール際の問い合わせを自動化する

$ dnf install -y [パッケージ名]

リポジトリを指定してインストールする

$ dnf --enablerepo=[有効にするリポジトリ名] --disablerepo=[無効にするリポジトリ名] install [パッケージ名]

実行結果

[root@centos ~]# dnf install httpd
メタデータの期限切れの最終確認: 6:34:28 時間前の 2023年02月09日 08時05分27秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                       アーキテクチャー                      バージョン                                                              リポジトリー                             サイズ
===============================================================================================================================================================================================================
インストール:
 httpd                                            x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                  appstream                                1.4 M
依存関係のインストール:
 apr                                              x86_64                                1.6.3-12.el8                                                            appstream                                128 k
 apr-util                                         x86_64                                1.6.1-6.el8.1                                                           appstream                                104 k
 httpd-filesystem                                 noarch                                2.4.37-51.module+el8.7.0+1059+126e9251                                  appstream                                 41 k
 httpd-tools                                      x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                  appstream                                108 k
 mod_http2                                        x86_64                                1.15.7-5.module+el8.6.0+823+f143cee1                                    appstream                                153 k
 rocky-logos-httpd                                noarch                                86.3-1.el8                                                              baseos                                    24 k
弱い依存関係のインストール:
 apr-util-bdb                                     x86_64                                1.6.1-6.el8.1                                                           appstream                                 23 k
 apr-util-openssl                                 x86_64                                1.6.1-6.el8.1                                                           appstream                                 26 k
トランザクションの概要
===============================================================================================================================================================================================================
インストール  9 パッケージ
ダウンロードサイズの合計: 2.0 M
インストール後のサイズ: 5.4 M
これでよろしいですか? [y/N]: 

パッケージの削除

特定のパッケージと依存関係にあるすべてのパッケージのアンインストールする

$ dnf remove [パッケージ名]
$ dnf erase [パッケージ名]

実行結果

[root@centos ~]# dnf erase httpd
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                       アーキテクチャー                      バージョン                                                             リポジトリー                              サイズ
===============================================================================================================================================================================================================
削除中:
 httpd                                            x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                 @appstream                                4.3 M
未使用の依存関係の削除:
 apr                                              x86_64                                1.6.3-12.el8                                                           @appstream                                272 k
 apr-util                                         x86_64                                1.6.1-6.el8.1                                                          @appstream                                217 k
 apr-util-bdb                                     x86_64                                1.6.1-6.el8.1                                                          @appstream                                 11 k
 apr-util-openssl                                 x86_64                                1.6.1-6.el8.1                                                          @appstream                                 20 k
 httpd-filesystem                                 noarch                                2.4.37-51.module+el8.7.0+1059+126e9251                                 @appstream                                400  
 httpd-tools                                      x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                 @appstream                                194 k
 mod_http2                                        x86_64                                1.15.7-5.module+el8.6.0+823+f143cee1                                   @appstream                                394 k
 rocky-logos-httpd                                noarch                                86.2-1.el8                                                             @baseos                                    24 k
トランザクションの概要
===============================================================================================================================================================================================================
削除  9 パッケージ
解放された容量: 5.4 M
これでよろしいですか? [y/N]: 

パッケージ名と概要から検索

パッケージ検索を行う際はroot権限は不要です。

$ dnf search [検索文字列]

キャッシュを更新してからパッケージ検索をする

$ dnf search [検索文字列] --refresh

実行結果

[root@centos ~]# dnf search httpd
メタデータの期限切れの最終確認: 6:32:41 時間前の 2023年02月09日 08時05分27秒 に実施しました。
============================================================================================ 名前 完全一致: httpd =============================================================================================
httpd.x86_64 : Apache HTTP Server
=========================================================================================== 名前 & 概要 一致: httpd ===========================================================================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
rocky-logos-httpd.noarch : Rocky related icons and pictures used by httpd
============================================================================================== 名前 一致: httpd ===============================================================================================
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
============================================================================================== 概要 一致: httpd ===============================================================================================
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
[root@centos ~]# 

パッケージ情報の全てから検索する

$ dnf search all [検索文字列]

実行結果

[root@centos ~]# dnf search all httpd
メタデータの期限切れの最終確認: 6:33:30 時間前の 2023年02月09日 08時05分27秒 に実施しました。
=========================================================================================== 名前 & URL 一致: httpd ============================================================================================
httpd.x86_64 : Apache HTTP Server
==================================================================================== 名前 & 概要 & 説明 & URL 一致: httpd =====================================================================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
======================================================================================== 名前 & 概要 & URL 一致: httpd ========================================================================================
python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
=========================================================================================== 名前 & 概要 一致: httpd ===========================================================================================
rocky-logos-httpd.noarch : Rocky related icons and pictures used by httpd
======================================================================================== 名前 & 説明 & URL 一致: httpd ========================================================================================
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
=========================================================================================== 概要 & 説明 一致: httpd ===========================================================================================
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
============================================================================================== 概要 一致: httpd ===============================================================================================
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
============================================================================================== 説明 一致: httpd ===============================================================================================
mod_http2.x86_64 : module implementing HTTP/2 for Apache 2
mod_lookup_identity.x86_64 : Apache module to retrieve additional information about the authenticated user
python38-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
python39-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
=============================================================================================== URL 一致: httpd ===============================================================================================
mod_fcgid.x86_64 : FastCGI interface module for Apache 2
mod_ldap.x86_64 : LDAP authentication modules for the Apache HTTP Server
mod_proxy_html.x86_64 : HTML and XML content filters for the Apache HTTP Server
mod_session.x86_64 : Session interface for the Apache HTTP Server
mod_ssl.x86_64 : SSL/TLS module for the Apache HTTP Server
[root@centos ~]# 

パッケージの一覧表示

すべてのインストール済み及び利用可能なパッケージに関する情報を一覧表示する。

$ dnf list --all

glob表現に一致するパッケージを一覧表示

$ dnf list [glob表現]
$ dnf list "mysql"

実行結果

[root@centos ~]# dnf list --all | more
メタデータの期限切れの最終確認: 0:35:16 時間前の 2023年02月09日 14時40分04秒 に実施しました。
インストール済みパッケージ
GConf2.x86_64                                          3.2.6-22.el8                                               @AppStream                
ModemManager.x86_64                                    1.18.2-1.el8                                               @baseos                   
ModemManager-glib.x86_64                               1.18.2-1.el8                                               @baseos             

オプション

–all全てのパッケージを表示する
–installedインストールされているパッケージを表示する
–available利用可能なパッケージを表示する
–extrasインストールされているがリポジトリには含まれていないパッケージを表示する
–obsoletesインストールされているがリポジトリでは廃止(obsoleted)となっているパッケージを表示する
–recentリポジトリに新しく追加されたパッケージを表示する
–upgradesインストールされているパッケージのうち、新しいバージョンが公開されているパッケージを表示する
–autoremove依存関係のためインストールされているが現在は不要となっているパッケージを表示する(dnf autoremoveで削除可能)

インストール済みのパッケージを一覧表示

$ dnf list --installed

glob表現に一致するインストール済みのパッケージを一覧表示する。

$ dnf list --installed [glob表現]
$ dnf list "*sh"  --installed
※名前の末尾がshでインストール済みのパッケージを一覧表示する

実行結果

[root@centos ~]# dnf list --installed|more
インストール済みパッケージ
GConf2.x86_64                                      3.2.6-22.el8                                               @AppStream        
ModemManager.x86_64                                1.18.2-1.el8                                               @baseos           
ModemManager-glib.x86_64                           1.18.2-1.el8                                               @baseos           
NetworkManager.x86_64                              1:1.36.0-9.el8_6                                           @baseos           

有効なすべてのリポジトリーでインストール可能なパッケージを一覧表示

$ dnf list --available

glob表現に一致する有効なすべてのリポジトリーでインストール可能な一覧を表示する

$ dnf list --available [glob表現]

実行結果

[root@centos ~]# dnf list --available | more
メタデータの期限切れの最終確認: 0:47:45 時間前の 2023年02月09日 14時40分04秒 に実施しました。
利用可能なパッケージ
CUnit.i686                                             2.1.3-17.el8                                               appstream                 
CUnit.x86_64                                           2.1.3-17.el8                                               appstream                 
GConf2.i686                                            3.2.6-22.el8                                               appstream                 

リポジトリの一覧表示

リポジトリーのID、名前、使用中のシステムで有効なリポジトリーのパッケージ数を一覧表示する

$ dnf repolist

リポジトリーの詳細情報を一覧表示する

$ dnf repolist -v

有効及び無効なリポジトリーを一覧表示する

$ dnf repolist all

有効・無効なリポジトリを表示する

$  dnf repolist --enabled   #有効なリポジトリ
$  dnf repolist --disabled  #無効なリポジトリ

/etc/yum.repos.d/配下に存在するrepoファイル内で有効なリポジトリを表示するオプションです。

実行結果

[root@centos ~]# dnf repolist 
repo id                                                                                                 repo の名前
appstream                                                                                               Rocky Linux 8 - AppStream
baseos                                                                                                  Rocky Linux 8 - BaseOS
extras                                                                                                  Rocky Linux 8 - Extras
mysql-connectors-community                                                                              MySQL Connectors Community
mysql-tools-community                                                                                   MySQL Tools Community
mysql80-community                                                                                       MySQL 8.0 Community Server
[root@centos ~]# 

パッケージ情報の表示

パッケージに関する情報を表示する。パッケージ名には「*」や「?」記号を使用するができます。

$ dnf info [パッケージ名]
$ dnf info "*sh"
名前の末尾が"sh"であるパッケージの情報を表示する
$ dnf info "*sh" --installed
名前の末尾が"sh"で、インストール済みのパッケージの情報を表示する

実行結果

[root@centos ~]# dnf info httpd
メタデータの期限切れの最終確認: 1:04:31 時間前の 2023年02月09日 14時40分04秒 に実施しました。
利用可能なパッケージ
名前         : httpd
バージョン   : 2.4.37
リリース     : 51.module+el8.7.0+1059+126e9251
Arch         : x86_64
サイズ       : 1.4 M
ソース       : httpd-2.4.37-51.module+el8.7.0+1059+126e9251.src.rpm
リポジトリー : appstream
概要         : Apache HTTP Server
URL          : https://httpd.apache.org/
ライセンス   : ASL 2.0
説明         : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.
[root@centos ~]# 

パッケージの更新確認

インストール済みのパッケージの更新可能なアップデートを確認する

$ dnf check-update

実行結果

[root@centos ~]# dnf check-update
メタデータの期限切れの最終確認: 5:57:49 時間前の 2023年02月09日 08時05分27秒 に実施しました。
NetworkManager.x86_64                                                                      1:1.40.0-5.el8_7                                                                                   baseos           
NetworkManager-adsl.x86_64                                                                 1:1.40.0-5.el8_7                                                                                   baseos           
NetworkManager-bluetooth.x86_64                                                            1:1.40.0-5.el8_7                
・
・
・

パッケージの更新

パッケージを更新する。更新するパッケージの依存関係またはパッケージに利用可能な更新がある場合は、それらも更新する。

$ dnf upgrade [パッケージ名]
$ dnf update
$ dnf update [パッケージ名]

バージョン指定アップデート

$ dnf --releasever=8.3 update

実行結果

[root@centos ~]# dnf upgrade httpd
メタデータの期限切れの最終確認: 6:00:42 時間前の 2023年02月09日 08時05分27秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                      アーキテクチャー                      バージョン                                                               リポジトリー                             サイズ
===============================================================================================================================================================================================================
アップグレード:
 httpd                                           x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                   appstream                                1.4 M
 httpd-filesystem                                noarch                                2.4.37-51.module+el8.7.0+1059+126e9251                                   appstream                                 41 k
 httpd-tools                                     x86_64                                2.4.37-51.module+el8.7.0+1059+126e9251                                   appstream                                108 k
トランザクションの概要
===============================================================================================================================================================================================================
アップグレード  3 パッケージ
ダウンロードサイズの合計: 1.6 M
これでよろしいですか? [y/N]: 

セキュリティ関連のパッケージ更新

セキュリティ更新が利用可能なパッケージのみを最新バージョンに更新する。

$ dnf upgrade --security

実行結果

[root@centos ~]# dnf upgrade --security
メタデータの期限切れの最終確認: 6:08:29 時間前の 2023年02月09日 08時05分27秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                                     アーキテクチャー           バージョン                                                                      リポジトリー                  サイズ
===============================================================================================================================================================================================================
インストール:
 kernel                                                         x86_64                     4.18.0-425.10.1.el8_7                                                           baseos                        8.8 M
 kernel-core                                                    x86_64                     4.18.0-425.10.1.el8_7                                                           baseos                         41 M
 kernel-devel                                                   x86_64                     4.18.0-425.10.1.el8_7                                                           baseos                         22 M
 kernel-modules                                                 x86_64                     4.18.0-425.10.1.el8_7                                                           baseos                         33 M
アップグレード:
 bpftool                                                        x86_64                     4.18.0-425.10.1.el8_7                                                           baseos                        9.6 M
 buildah                                                        x86_64                     1:1.27.3-1.module+el8.7.0+1122+04a7498b                                         appstream                     8.1 M
 conmon                                                         x86_64                     3:2.1.4-1.module+el8.7.0+1122+04a7498b                                          appstream                      55 k
・
・
・
ダウンロードサイズの合計: 418 M
これでよろしいですか? [y/N]: 

最新のセキュリティー更新を含むバージョンにのみパッケージを更新する

$ dnf upgrade-minimal --security

パッケージグループを更新

パッケージグループを更新する。

$ dnf group upgrade [グループ名]

インストールなどの履歴一覧

$ dnf history list
[root@centos ~]# dnf history list
ID     | コマンドライン                                                                                                                                           | 日時             | 動作           | 変更さ 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    26 | erase httpd                                                                                                                                              | 2023-02-09 14:37 | Removed        |    9   
    25 | install httpd                                                                                                                                            | 2023-02-09 14:31 | Upgrade        |    3   
    24 |                                                                                                                                                          | 2023-01-24 12:17 | Install        |    1   
    23 | install ftp                                                                                                                                              | 2023-01-24 11:04 | Install        |    1   
    22 | install lftp                                                                                                                                             | 2023-01-23 14:33 | Install        |    1   
    21 | install vsftpd                           

dnfキャッシュクリアする方法

$ dnf clean all

実行結果

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

複雑な条件を付けてパッケージを探す

「dnf repoquery 選択対象」でパッケージを探すことができます。

$ dnf repoquery --whatrequires [パッケージ]
指定したパッケージを使用するパッケージを探すことができます。
$ dnf repoquery --whatrequires iptables --installed
システムにインストール済みのパッケージのうち、iptablesを必要とするパッケージを表示する
$ dnf repoquery --installed --qf "%{name}"
システムにインストール済みのパッケージの名前を一覧表示する

dnf repoquery –whatrequires iptables –qf “%{name}”コマンドで、iptablesを必要とするパッケージ名だけ表示することもできます。

選択対象オプション(repoqueryコマンド使用可)

–available使用可能なパッケージを対象とする(デフォルト)
–extrasリポジトリに存在しないパッケージを対象とする
–arch=種類対象とするアーキテクチャ(x86_64、i686、noarchなど)を指定する
–installedインストール済みのパッケージを対象とする
–installonly「installonly」としてインストール済みのパッケージ(カーネルパッケージなど)を対象とする
–latest-limit 個数複数のバージョンがある場合、指定した個数分を対象とする。負の値を指定すると最新版以外が対象になる(「–latest-limit=-1」のように指定)
–duplicates重複しているものだけを対象とする
–unneeded依存関係などでインストールされたが現在は不要となっているパッケージを対象とする
–upgrades更新版があるパッケージを対象とする
–whatrequires パッケージ名指定したパッケージを必要とするパッケージを対象とする
–whatdepends パッケージ名指定したパッケージが依存する、またはインストールが推奨されるパッケージを対象とする(require、enhance、recommend、suggest、supplement全てを含む)
–whatconflicts パッケージ名指定したパッケージと競合するパッケージを対象とする
–whatobsoletes パッケージ名指定したパッケージと置き換わるパッケージを対象とする
–whatprovides 機能指定した機能を提供するパッケージを対象とする
-f ファイル名,
–file ファイル名
指定したファイルを含むパッケージを対象とする
-a,
–all
全てのパッケージを対象とする(rpmqueryコマンドとの互換性維持用のオプション)

表示内容オプション(repoqueryコマンド使用可)

-i,
–info
パッケージの詳細な情報を表示する
-l,
–list
パッケージに収録されているファイルのリストを表示する
-s,
–source
ソースパッケージの名前を表示する
–changelogsパッケージの変更履歴を表示する
–locationパッケージのダウンロード元を表示する
–requires指定したパッケージに依存するパッケージを表示する
–depends指定したパッケージが依存するか、インストールが推奨されたパッケージを表示する(enhances、recommends、suggests、supplements)
–tree依存関係をツリー形式で表示する(–whatrequires、–requires、–conflicts、–enhances、–suggests、–provides、–supplements、–recommendsと一緒に指定する)
–recursiveパッケージを再帰的に探す(–whatrequires、–requires、–resolveと一緒に指定する)
-qf 形式、–queryformat 形式表示結果をタグの組み合わせで指定する(使用可能なタグは「dnf repoquery –querytags」で確認)
–nvr「パッケージ名-バージョン-リリース」という形式で表示する(「–qf “%{name}-%{version}-%{release}”」相当)

指定したファイルがどのパッケージからインストールされるか表示する

「dnf repoquery -f ファイル名」で、指定したファイルやディレクトリがどのパッケージからインストールされるのかを表示します。「-f」オプションは「指定したファイルを含むパッケージを表示する」という意味であり、存在しないファイルを指定も検索可能です。なお、指定する場合は、フルパスが必要です。

$ dnf repoquery -f [ファイル名]
$ dnf repoquery -f [ファイル名] --installed

実行結果

[root@centos ~]# dnf repoquery -f /etc/sysconfig/iptables
メタデータの期限切れの最終確認: 1:22:28 時間前の 2023年02月09日 17時21分20秒 に実施しました。
iptables-services-0:1.8.4-23.el8.x86_64
[root@centos ~]# 

指定したパッケージが含むファイルを一覧表示する

「dnf repoquery パッケージ名 -l」で、指定したパッケージが含むファイルを表示できます

$ dnf repoquery [パッケージ名] -l

実行結果

[root@centos ~]# dnf repoquery -f /etc/sysconfig/iptables
メタデータの期限切れの最終確認: 1:22:28 時間前の 2023年02月09日 17時21分20秒 に実施しました。
iptables-services-0:1.8.4-23.el8.x86_64
[root@centos ~]# dnf repoquery iptables-services -l
メタデータの期限切れの最終確認: 0:08:57 時間前の 2023年02月09日 18時45分00秒 に実施しました。
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service
/usr/libexec/initscripts/legacy-actions/ip6tables
/usr/libexec/initscripts/legacy-actions/ip6tables/panic
/usr/libexec/initscripts/legacy-actions/ip6tables/save
/usr/libexec/initscripts/legacy-actions/iptables
/usr/libexec/initscripts/legacy-actions/iptables/panic
/usr/libexec/initscripts/legacy-actions/iptables/save
/usr/libexec/iptables
/usr/libexec/iptables/ip6tables.init
/usr/libexec/iptables/iptables.init
[root@centos ~]# 

ローカルリポジトリの作成

「createrepo」をインストールする

$ dnf install -y createrepo

実行結果

[root@centos ~]# dnf install -y createrepo
メタデータの期限切れの最終確認: 0:16:24 時間前の 2023年02月09日 18時45分00秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                              アーキテクチャー                             バージョン                                         リポジトリー                                    サイズ
===============================================================================================================================================================================================================
インストール:
 createrepo_c                                            x86_64                                       0.17.7-6.el8                                       appstream                                        88 k
依存関係のインストール:
 createrepo_c-libs                                       x86_64                                       0.17.7-6.el8                                       appstream                                       115 k
 drpm                                                    x86_64                                       0.4.1-3.el8                                        appstream                                        67 k
トランザクションの概要
===============================================================================================================================================================================================================
インストール  3 パッケージ
ダウンロードサイズの合計: 271 k
インストール後のサイズ: 580 k
パッケージのダウンロード:
(1/3): drpm-0.4.1-3.el8.x86_64.rpm                                                                                                                                             585 kB/s |  67 kB     00:00    
(2/3): createrepo_c-0.17.7-6.el8.x86_64.rpm                                                                                                                                    753 kB/s |  88 kB     00:00    
(3/3): createrepo_c-libs-0.17.7-6.el8.x86_64.rpm                                                                                                                               656 kB/s | 115 kB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                           433 kB/s | 271 kB     00:00     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                                                       1/1 
  インストール中   : drpm-0.4.1-3.el8.x86_64                                                                                                                                                               1/3 
  インストール中   : createrepo_c-libs-0.17.7-6.el8.x86_64                                                                                                                                                 2/3 
  インストール中   : createrepo_c-0.17.7-6.el8.x86_64                                                                                                                                                      3/3 
  scriptletの実行中: createrepo_c-0.17.7-6.el8.x86_64                                                                                                                                                      3/3 
  検証             : createrepo_c-0.17.7-6.el8.x86_64                                                                                                                                                      1/3 
  検証             : createrepo_c-libs-0.17.7-6.el8.x86_64                                                                                                                                                 2/3 
  検証             : drpm-0.4.1-3.el8.x86_64                                                                                                                                                               3/3 
インストール済み:
  createrepo_c-0.17.7-6.el8.x86_64                                      createrepo_c-libs-0.17.7-6.el8.x86_64                                      drpm-0.4.1-3.el8.x86_64                                     
完了しました!
[root@centos ~]# 

モジュールの一覧

$ dnf module list

実行結果

[root@centos ~]# dnf module list
メタデータの期限切れの最終確認: 0:42:54 時間前の 2023年02月09日 18時45分00秒 に実施しました。
Rocky Linux 8 - AppStream
Name                 Stream          Profiles Summary                                                                                                                                                          
389-ds               1.4                      389 Directory Server (base)                                                                                                                                      
ant                  1.10 [d]        common [ Java build tool        
・
・
・

指定したモジュールのインストール可能なバージョンを表示

$ dnf module list [パッケージ名]

以下の実行結果では、PostgreSQLのインストール可能なバージョンを表示しています。

  • [d]とプリントされているのはデフォルトです
  • [i]とプリントされているのはインストール済みを示します

実行結果

[root@centos ~]# dnf module list postgresql
メタデータの期限切れの最終確認: 0:46:26 時間前の 2023年02月09日 18時45分00秒 に実施しました。
Rocky Linux 8 - AppStream
Name                                         Stream                                   Profiles                                             Summary                                                             
postgresql                                   9.6                                      client, server [d]                                   PostgreSQL server and client module                                 
postgresql                                   10 [d]                                   client, server [d]                                   PostgreSQL server and client module                                 
postgresql                                   12                                       client, server [d]                                   PostgreSQL server and client module                                 
postgresql                                   13                                       client, server [d]                                   PostgreSQL server and client module                                 
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[root@centos ~]# 

モジュールのインストール

$ dnf module install [モジュール名:Stream]
$ dnf module install [モジュール名:Stream/Profile]

Stream(バージョン)、Profileを指定してインストールします。

実行結果

[root@centos ~]# dnf module install postgresql:13
メタデータの期限切れの最終確認: 0:52:05 時間前の 2023年02月09日 18時45分00秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                       バージョン                                                           リポジトリー                              サイズ
===============================================================================================================================================================================================================
group/moduleパッケージをインストール:
 postgresql-server                                 x86_64                                 13.7-2.module+el8.6.0+980+9caa008a                                   appstream                                 5.6 M
依存関係のインストール:
 libpq                                             x86_64                                 13.5-1.el8                                                           appstream                                 197 k
 postgresql                                        x86_64                                 13.7-2.module+el8.6.0+980+9caa008a                                   appstream                                 1.5 M
モジュールプロファイルのインストール中:
 postgresql/server                                                                                                                                                                                            
モジュールストリームの有効化中:
 postgresql                                                                               13                                                                                                                  
トランザクションの概要
===============================================================================================================================================================================================================
インストール  3 パッケージ
ダウンロードサイズの合計: 7.4 M
インストール後のサイズ: 29 M
これでよろしいですか? [y/N]: 

モジュールのバージョン切り替え

モジュールのバージョンを切り替える場合は、既にインストールしたバージョンをresetして新バージョンをインストールします。

$ dnf module reset [モジュール名:Stream]
$ dnf module install [モジュール名:Stream]

以下の例では、PostgreSQL13からPostgreSQL10に切り替えています。

実行結果

[root@centos ~]# dnf module reset postgresql:13
メタデータの期限切れの最終確認: 1:00:32 時間前の 2023年02月09日 18時45分00秒 に実施しました。
モジュール名のみが必要です。引数で不必要な情報を無視します: 'postgresql:13'
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                                 バージョン                                         リポジトリー                                      サイズ
===============================================================================================================================================================================================================
モジュールプロファイルの無効化中:
 postgresql/server                                                                                                                                                                                            
モジュールの再設定中:
 postgresql                                                                                                                                                                                                   
トランザクションの概要
===============================================================================================================================================================================================================
これでよろしいですか? [y/N]: y
完了しました!
[root@centos ~]# dnf module install postgresql:10
メタデータの期限切れの最終確認: 1:01:14 時間前の 2023年02月09日 18時45分00秒 に実施しました。
依存関係が解決しました。
===============================================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                       バージョン                                                           リポジトリー                              サイズ
===============================================================================================================================================================================================================
ダウングレード:
 postgresql                                        x86_64                                 10.23-1.module+el8.7.0+1118+c6c6f44a                                 appstream                                 1.5 M
 postgresql-server                                 x86_64                                 10.23-1.module+el8.7.0+1118+c6c6f44a                                 appstream                                 5.0 M
モジュールプロファイルのインストール中:
 postgresql/server                                                                                                                                                                                            
モジュールストリームの有効化中:
 postgresql                                                                               10                                                                                                                  
トランザクションの概要
===============================================================================================================================================================================================================
ダウングレード  2 パッケージ
ダウンロードサイズの合計: 6.6 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): postgresql-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64.rpm                                                                                                              8.1 MB/s | 1.5 MB     00:00    
(2/2): postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64.rpm                                                                                                        19 MB/s | 5.0 MB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                           8.4 MB/s | 6.6 MB     00:00     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                                                       1/1 
  scriptletの実行中: postgresql-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                                1/1 
  ダウングレード中 : postgresql-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                                1/4 
  scriptletの実行中: postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                         2/4 
  ダウングレード中 : postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                         2/4 
  scriptletの実行中: postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                         2/4 
  scriptletの実行中: postgresql-server-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                           3/4 
  整理             : postgresql-server-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                           3/4 
  scriptletの実行中: postgresql-server-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                           3/4 
  整理             : postgresql-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                                  4/4 
  scriptletの実行中: postgresql-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                                  4/4 
  検証             : postgresql-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                                1/4 
  検証             : postgresql-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                                  2/4 
  検証             : postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                                                                                                         3/4 
  検証             : postgresql-server-13.7-2.module+el8.6.0+980+9caa008a.x86_64                                                                                                                           4/4 
ダウングレード済み:
  postgresql-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                             postgresql-server-10.23-1.module+el8.7.0+1118+c6c6f44a.x86_64                                            
完了しました!
[root@centos ~]#