「このサーバーに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 でパッケージに含ませるファイル一覧を確認する方法
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
dnfとrpmの使い分け早見表
| 用途 | \t\t\t推奨コマンド | \t\t
|---|---|
| パッケージのインストール・削除・更新 | \t\t\tdnf |
\t\t
| インストール済みか確認・一覧表示 | \t\t\trpm -qa |
\t\t
| バージョンを確認する | \t\t\trpm -q |
\t\t
| 詳細情報(説明・インストール日時)を見る | \t\t\trpm -qi |
\t\t
| ファイルがどのパッケージか逆引きする | \t\t\trpm -qf |
\t\t
| 最近インストールしたパッケージを確認する | \t\t\trpm -qa --last |
\t\t
【基本】インストール済みの全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
|---|---|
queryオプション(-q): パッケージ情報を検索する |
\t\t\tquery(問い合わせ)=パッケージ情報を検索する | \t\t
allオプション(-a): 全パッケージを対象にする |
\t\t\tall=インストール済みの全パッケージを対象にする | \t\t
-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
↑ / b |
\t\t\t上にスクロール | \t\t
/キーワード |
\t\t\t前方検索 | \t\t
q |
\t\t\t終了 | \t\t
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\trpm -qa |
\t\t
| 1画面ずつ確認 | \t\t\trpm -qa | less |
\t\t
| キーワードで絞り込む | \t\t\trpm -qa | grep キーワード |
\t\t
| バージョンを確認する | \t\t\trpm -q パッケージ名 |
\t\t
| 詳細情報を見る | \t\t\trpm -qi パッケージ名 |
\t\t
| ファイルから逆引きする | \t\t\trpm -qf /フルパス/ファイル名 |
\t\t
| 最近インストールしたものを確認 | \t\t\trpm -qa --last | head -20 |
\t\t
rpmコマンドは、サーバーの状態把握・障害対応・セキュリティ確認など、現場のあらゆる場面で役立ちます。まずは rpm -qa | grep と rpm -q パッケージ名 の2つを日常的に使えるよう身につけておきましょう。あわせて読みたい関連記事
・yum/dnfコマンドの使い方 — パッケージのインストール・更新・RHEL10の変更点まとめ
RPMパッケージ管理、正しく使いこなせていますか?
パッケージの確認は障害対応やセキュリティパッチ適用の際に必ず必要になるスキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:LinuxでIPアドレスを確認する方法|ip aの出力の見方とNIC設定の確認まで
- 前のページへ:システムをすぐに再起動する
- この記事の属するカテゴリ:Linuxtips・RPMへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます