RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, RPM > RPMパッケージの確認コマンドまとめ(一覧・バージョン・逆引きなど)
RPMパッケージの確認はLinuxサーバーを管理するうえでとても大切な作業の一つです。
「このサーバーにApacheは入ってる?バージョンは?」
「このファイルどのパッケージのもの?」など
サーバー管理や障害対応の現場では、こうした確認が日常的に発生します。

この記事では rpmコマンドを使ったパッケージ確認の全手順を、コマンド例とともに体系的に解説します。一覧表示から絞り込み、バージョン確認、ファイル逆引きまで、今日から使える内容です。

そもそもなぜ「rpm」コマンドで確認するのか

RHEL・AlmaLinux・Rocky Linux・Oracle Linuxなど、Red Hat系Linuxのパッケージ管理には RPM(Redhat Package Manager) が使われています。

普段のインストールや削除には依存関係を自動解決してくれる dnf(旧yum)コマンドを使うのが一般的です。しかし、「今システムに何が入っているかを確認する」用途ではrpmコマンドが今でも現場で重宝されます

rpmコマンドが活躍する具体的なシーン

・障害対応で「このパッケージのバージョンは?」と素早く確認したいとき
・セキュリティパッチの適用前後に、バージョンが正しく変わったか確認するとき
・新サーバーのセットアップ後に、必要なパッケージがすべて入っているかチェックするとき
・「このコマンドはどのパッケージに含まれているの?」と逆引きしたいとき

【この記事でわかること】
・rpm -qa でインストール済みパッケージを一覧表示する方法
・rpm -q パッケージ名 で特定パッケージのインストール確認とバージョン取得
・rpm -qf ファイルパス でファイルがどのパッケージに含まれるかを逆引きする方法
・rpm -qi で詳細情報(概要・バージョン・インストール日)を確認する方法
・rpm -ql でパッケージに含ませるファイル一覧を確認する方法

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

dnfとrpmの使い分け早見表

\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t
用途推奨コマンド
パッケージのインストール・削除・更新dnf
インストール済みか確認・一覧表示rpm -qa
バージョンを確認するrpm -q
詳細情報(説明・インストール日時)を見るrpm -qi
ファイルがどのパッケージか逆引きするrpm -qf
最近インストールしたパッケージを確認するrpm -qa --last

【基本】インストール済みの全RPMパッケージを一覧表示する

コマンド:rpm -qa

$ rpm -qa cryptsetup-libs-2.3.3-4.el9.x86_64 shadow-utils-4.8.1-16.el9.x86_64 elfutils-default-yama-scope-0.185-1.el9.noarch ・・・中略・・・ krb5-libs-1.19.1-18.el9.x86_64 bzip2-libs-1.0.8-8.el9.x86_64


オプションの意味:
\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t
オプション意味
queryオプション(-q): パッケージ情報を検索するquery(問い合わせ)=パッケージ情報を検索する
allオプション(-a): 全パッケージを対象にするall=インストール済みの全パッケージを対象にする
-q-aを組み合わせた-qaが「インストール済みパッケージをすべて表示」の定番コマンドです。ただし、数百から数千件が一気に流れてしまうため、次の方法と組み合わせて使うのが実践的です。

【応用1】一画面ずつスクロールして確認する(lessコマンド)

出力が多すぎて確認できない場合は、パイプ(|less コマンドを組み合わせます。
パイプとは、左のコマンドの出力を右のコマンドに渡す機能のことです。

$ rpm -qa | less cryptsetup-libs-2.3.3-4.el9.x86_64 shadow-utils-4.8.1-16.el9.x86_64 ・・・中略・・・


lessコマンドの操作方法:
\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t
キー動作
/ スペース下にスクロール
/ b上にスクロール
/キーワード前方検索
q終了
moreコマンドでも同様に動作しますが、上方向にスクロールできるlessの使用が現代では推奨されています。

【応用2】特定パッケージを絞り込む(grepコマンド)

「httpd(Apache)が入っているか確認したい」など、特定のパッケージだけ調べたい場合は grepコマンド を組み合わせます。これが現場で最もよく使う方法です。

$ rpm -qa | grep http httpd-tools-2.4.51-7.el9.x86_64 httpd-core-2.4.51-7.el9.x86_64


grepの注意点:大文字・小文字は区別されます。
大文字・小文字を区別せずに検索したい場合は -i オプションを付けます。

$ rpm -qa | grep -i HTTP httpd-tools-2.4.51-7.el9.x86_64 httpd-core-2.4.51-7.el9.x86_64


【応用3】ワイルドカードで絞り込む(grepなし)

grepを使わず、rpmコマンド単体でも絞り込みができます。その場合は ワイルドカード(* を使いますが、シェルによって*が誤って展開されることがあるため、シングルクォート(' ')で囲むのが安全です。

$ rpm -qa http # 完全一致 → 該当なし (何も表示されない) $ rpm -qa 'http*' # 前方一致(httpから始まるもの) httpd-tools-2.4.51-7.el9.x86_64 $ rpm -qa '*http*' # 部分一致(httpを含むものすべて) httpd-tools-2.4.51-7.el9.x86_64 httpd-core-2.4.51-7.el9.x86_64

※日常的な確認には rpm -qa | grep キーワード が確実でおすすめです。

【応用4】バージョンを確認する(rpm -q / rpm -qi)

「パッケージが入っているかどうか」だけでなく、バージョンまで確認したい場面は現場では非常に多いです。セキュリティパッチの適用確認などに必須のコマンドです。

バージョンのみ確認する

$ rpm -q httpd httpd-2.4.51-7.el9.x86_64

インストールされていない場合は package nginx is not installed のように表示されます。

詳細情報を確認する(インストール日時・説明文など)

$ rpm -qi httpd Name : httpd Version : 2.4.51 Release : 7.el9 Architecture: x86_64 Install Date: 2024年 1月15日 月曜日 10:23:45 JST Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.

-qi(query + info)でパッケージ名・バージョン・インストール日時・説明文まで一括確認できます。

【応用5】ファイルからパッケージを逆引きする(rpm -qf)

「このコマンドやファイルは、どのパッケージに含まれているの?」という逆引きは、現場エンジニアがよく直面する場面です。

# /usr/bin/curl がどのパッケージに含まれるか調べる $ rpm -qf /usr/bin/curl curl-7.76.1-14.el9.x86_64 # /etc/httpd/conf/httpd.conf がどのパッケージのものか調べる $ rpm -qf /etc/httpd/conf/httpd.conf httpd-2.4.51-7.el9.x86_64

-qf(query + file)にフルパスでファイルを指定するのがポイントです。which コマンド名でフルパスを確認してから実行するとスムーズです。

【応用6】最近インストールしたパッケージを確認する(--last)

「最近何がインストールされたか確認したい」・・・セキュリティ監査や障害調査でよく使うコマンドです。

# インストール日時が新しい順に表示 $ rpm -qa --last | head -20 httpd-2.4.51-7.el9.x86_64 2024年 1月15日 月曜日 10:23:45 JST httpd-core-2.4.51-7.el9.x86_64 2024年 1月15日 月曜日 10:23:44 JST curl-7.76.1-14.el9.x86_64 2024年 1月10日 水曜日 09:15:30 JST ・・・以下略・・・

head -20 を付けることで、直近20件のみ表示できます。数を変えて件数を調整してください。

よくあるエラーと対処法


パッケージが見つからない(package is not installed)

これはエラーではなく「インストールされていない」という正常な応答です。インストールする場合は dnf install パッケージ名 を実行してください。

ワイルドカードが効かない・誤動作する

# NG:クォートなしだとシェルが*を展開してしまう場合がある $ rpm -qa *http* # OK:シングルクォートで囲む $ rpm -qa '*http*'


bash: rpm: command not found が表示される

rpmコマンド自体がインストールされていない状態です(Debian/Ubuntu系では使用不可)。Red Hat系OSであれば dnf install rpm で再インストールできます。

インストール済みパッケージの設定ファイルを確認する

パッケージが提供する設定ファイルの場所はrpm -qcで確認できます。設定ファイルはどこにあるかわからない場合に便利です。

# パッケージの設定ファイル一覧を表示 rpm -qc パッケージ名 # 例: httpdの設定ファイルを確認 rpm -qc httpd

実行例

[ec2-user@server ~]$ rpm -qc httpd /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/sysconfig/httpd

関連オプション

rpm -qc パッケージ名:設定ファイル一覧を表示
rpm -qd パッケージ名:ドキュメントファイル一覧を表示
rpm -ql パッケージ名:パッケージの全ファイル一覧を表示

本記事のまとめ

\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t\t \t\t\t \t\t\t \t\t \t
やりたいことコマンド
全パッケージを一覧表示rpm -qa
1画面ずつ確認rpm -qa | less
キーワードで絞り込むrpm -qa | grep キーワード
バージョンを確認するrpm -q パッケージ名
詳細情報を見るrpm -qi パッケージ名
ファイルから逆引きするrpm -qf /フルパス/ファイル名
最近インストールしたものを確認rpm -qa --last | head -20

rpmコマンドは、サーバーの状態把握・障害対応・セキュリティ確認など、現場のあらゆる場面で役立ちます。まずは rpm -qa | greprpm -q パッケージ名 の2つを日常的に使えるよう身につけておきましょう。

あわせて読みたい関連記事

yum/dnfコマンドの使い方 — パッケージのインストール・更新
RHEL10の変更点まとめ

RPMパッケージ管理、正しく使いこなせていますか?

パッケージの確認は障害対応やセキュリティパッチ適用の際に必ず必要になるスキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。