本記事で解説する内容は、RHEL 10 系(AlmaLinux 10、Rocky Linux 10 など)で採用されている DNF4 を対象としています。
Fedora などで採用されている DNF5 を対象とした内容ではありません。
コマンド早見表 #
解説は不要という方は、以下のコマンドをそのままコピーしてご利用ください。
- キーワードでパッケージを検索する
dnf search <キーワード>
- 複数キーワードで検索する(AND検索)
dnf search <キーワード1> <キーワード2>
- 詳細検索(ディスクリプションやURLを対象に含める)
dnf search --all <キーワード>
- 利用可能なバージョンを表示する
dnf search --showduplicates <キーワード>
dnf searchとは #
dnf search は、パッケージの名称や概要などに指定したキーワードが含まれるパッケージを検索するコマンドとなります。
インストールしたいパッケージの正確な名前が分からない場合や、特定の機能を持つパッケージを広く探したい場合に役立ちます。
基本的な使い方 #
dnf search の基本的な指定形式は以下となります。
dnf search <キーワード>
例えば、httpd に関連するパッケージを検索する場合は以下のコマンドとなります。
dnf search httpd
実行すると、以下のような出力が表示されます。
====================== Name Exactly Matched: httpd ================================================
httpd.x86_64 : Apache HTTP Server
====================== Name & Summary Matched: httpd ==============================================
almalinux-logos-httpd.noarch : AlmaLinux-related icons and pictures used by httpd
httpd-core.x86_64 : httpd minimal core
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
====================== Name Matched: 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.x86_64 : Lightweight library for embedding a webserver in applications
====================== Summary Matched: httpd ====================================================
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_proxy_cluster.x86_64 : JBoss mod_proxy_cluster for Apache httpd
デフォルトでの出力は以下の3つのセクションに分かれています。
| 区分 | 説明 |
|---|---|
Name Exactly Matched |
パッケージ名がキーワードと完全一致するもの |
Name Matched |
パッケージ名の一部にキーワードが含まれるもの |
Name & Summary Matched |
パッケージ名または概要にキーワードが含まれるもの |
複数キーワードで検索する #
複数のキーワードで検索したい場合は、スペース区切りでキーワードを複数指定します。
複数キーワードは OR 検索ではなく AND 検索となり、指定したすべてのキーワードに一致するパッケージのみが表示されます。
dnf search <キーワード1> <キーワード2>
例えば、httpd と tool の両方を含むパッケージを検索する場合は、以下のように実行します。
dnf search httpd tool
実行すると、以下のような出力が表示されます。
================================================ Name & Summary Matched: httpd, tool =======================================
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
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
先ほどの httpd 単体の検索とは異なり、httpd と tool の両方に一致するパッケージのみが表示されていることが分かります。
詳細検索 #
デフォルトの dnf search はパッケージ名と概要(summary)を検索対象としていますが、--all オプションを付けることで、URLや説明文(description)なども検索対象に含めることができます。
基本的な指定形式は以下となります。
dnf search --all <キーワード>
例えば、web server というキーワードで詳細検索した場合は、以下のように実行します。
dnf search --all "web server"
実行すると、以下のような出力が表示されます。
====================== Summary & Description Matched: web server =================================
nginx.x86_64 : A high performance web server and reverse proxy server
pcp-pmda-weblog.x86_64 : Performance Co-Pilot (PCP) metrics from web server logs
python3-tornado.x86_64 : Scalable, non-blocking web server and tools
====================== Summary Matched: web server ===============================================
libcurl.x86_64 : A library for getting files from web servers
====================== Description Matched: web server ===========================================
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
git-instaweb.noarch : Repository browser in gitweb
httpd.x86_64 : Apache HTTP Server
mod_auth_openidc.x86_64 : OpenID Connect auth module for Apache HTTP Server
spice-html5.noarch : Pure Javascript SPICE client
varnish.x86_64 : High-performance HTTP accelerator
デフォルトでの出力に加え新たに Description Matched が出力されていることが分かります。
このようにパッケージ名や概要だけでは見つからない場合や、より広範囲に検索したい場合に有効な方法となります。
ただし、検索対象が広がる分、結果の件数が多くなる場合があるため注意が必要となります。
利用可能なすべてのバージョンを表示する #
デフォルトの dnf search では、各パッケージの最新バージョンのみが表示される仕様となっています。
そのため古いバージョンは検索結果に表示されません
--showduplicates オプションを付けることで、リポジトリで提供されているすべてのバージョンを一覧表示することができます。
基本的な指定形式は以下となります。
dnf search --showduplicates <キーワード>
例えば httpd を検索した場合は、以下のように実行します。
dnf search --showduplicates httpd
実行すると、以下のような出力が表示されます。
====================== Name Exactly Matched: httpd ===============================================
httpd-2.4.63-13.el10.x86_64 : Apache HTTP Server
httpd-2.4.63-13.el10_2.1.x86_64 : Apache HTTP Server
httpd-2.4.63-13.el10_2.4.x86_64 : Apache HTTP Server
(以降は省略)
デフォルトの出力と違い、複数バージョンが表示されていることが確認できます。
特定のバージョンをインストールしたい場合や、利用可能なバージョンの一覧を確認したい場合に有効な方法となります。
dnf listとの違い #
dnf コマンドではパッケージを調べるコマンドとして、dnf list も似た用途で利用されることがあります。
主な違いは以下の通りとなっております。
| コマンド | 用途 |
|---|---|
dnf search |
キーワードからパッケージを探す |
dnf list |
インストール済みや利用可能なパッケージの一覧を表示する |
パッケージ名が分からない状態で探したい場合は dnf search、特定のパッケージのインストール状況を確認したい場合は dnf list が適しております。
dnf list の詳しい使い方については、以下の記事にてご紹介しております。
興味がある方は、こちらもあわせてご覧ください。
dnfでインストール済みパッケージを確認する方法(list installed・grep)
まとめ #
dnf search を利用することで、パッケージ名が分からない場合でもキーワードから目的のパッケージを見つけることができます。
dnf list と使い分けることで、パッケージの探索からインストール状況の確認まで、スムーズに作業を進めることができます。
ぜひ活用してみてください。