Linuxコマンド辞典 dnfコマンド(パッケージ管理)
Yumの後継パッケージ管理コマンドの「dnf」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS
- 概要・使用方法
- オプション
- パッケージのインストール
- パッケージの削除
- パッケージ名と概要から検索
- パッケージ情報の全てから検索する
- パッケージの一覧表示
- インストール済みのパッケージを一覧表示
- 有効なすべてのリポジトリーでインストール可能なパッケージを一覧表示
- リポジトリの一覧表示
- パッケージ情報の表示
- パッケージの更新確認
- パッケージの更新
- セキュリティ関連のパッケージ更新
- パッケージグループを更新
- インストールなどの履歴一覧
- dnfキャッシュクリアする方法
- 複雑な条件を付けてパッケージを探す
- 指定したファイルがどのパッケージからインストールされるか表示する
- 指定したパッケージが含むファイルを一覧表示する
- ローカルリポジトリの作成
- モジュールの一覧
- 指定したモジュールのインストール可能なバージョンを表示
- モジュールのインストール
- モジュールのバージョン切り替え
概要・使用方法
書式
$ 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/:リポジトリ用のファイルを置くディレクトリ
ドキュメント
依存関係
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=パッケージ名 | 除外するパッケージを指定する |
–showduplicates | dnfのサブコマンド「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 ~]#