メインコンテンツへスキップ
  1. ブログ/

dnf searchでパッケージを検索する方法(--all・--showduplicates対応)

·
Linux AlmaLinux Dnf
目次

dnf searchでパッケージを検索する方法(–all・–showduplicates対応)
dnf searchでパッケージを検索する方法(–all・–showduplicates対応)

本記事で解説する内容は、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>

例えば、httpdtool の両方を含むパッケージを検索する場合は、以下のように実行します。

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 単体の検索とは異なり、httpdtool の両方に一致するパッケージのみが表示されていることが分かります。

詳細検索
#

デフォルトの 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 と使い分けることで、パッケージの探索からインストール状況の確認まで、スムーズに作業を進めることができます。

ぜひ活用してみてください。

関連記事

〖初心者向け〗AlmaLinuxにGo言語をインストールする方法|yum(dnf)と手動(公式バイナリ)で導入
AlmaLinux Go Linux Dnf 環境構築
grepで特定のディレクトリを除外して検索する方法(--exclude-dir)
Linux コマンド Grep AlmaLinux
Nginx njsとは?AlmaLinux・RHELへのインストール方法
Linux AlmaLinux Nginx プログラム
auditdでファイルの変更を監視する方法
Linux AlmaLinux セキュリティ Auditd
grepでバイナリファイルを除外する方法|-Iオプションの使い方
Grep コマンド AlmaLinux Linux
【初心者向け】AlmaLinuxでEPELリポジトリを有効化する方法
AlmaLinux Linux EPEL リポジトリ