Linuxのrpmコマンドを使いこなすには、豊富なオプションの意味と使い方を正確に理解することが欠かせません。
「rpm -qaって何をするコマンドなの?」「インストールと削除のオプションの違いは?」といった疑問を持つ方も多いでしょう。
この記事では、rpmコマンドの主要オプション一覧・具体的な使い方・実行例を体系的に解説します。
照会・インストール・削除・検証・署名確認まで、実務でよく使うオプションを網羅していますので、Linuxサーバー管理者の方はもちろん、これからLinuxを学ぶ方にも参考になる内容です。
ぜひ最後までご覧ください。
rpmコマンドのオプション体系と基本的な考え方
それではまず、rpmコマンドのオプション体系と基本的な考え方について解説していきます。
rpmコマンドのオプションは大きく「モードオプション」と「修飾オプション」の2種類に分類できます。
モードオプションはコマンドの動作モードを決定するもので、インストール・削除・照会・検証などの主要操作を指定します。
修飾オプションはモードオプションに組み合わせて動作を細かく制御するためのもので、詳細表示・強制実行・テスト実行などを指定します。
rpmコマンドの主なモードオプション一覧
-i / –install:パッケージのインストール
-U / –upgrade:パッケージのアップグレード(未インストールなら新規インストール)
-F / –freshen:インストール済みの場合のみアップグレード
-e / –erase:パッケージの削除
-q / –query:パッケージ情報の照会
-V / –verify:パッケージの検証
-K / –checksig:署名の確認
–rebuilddb:RPMデータベースの再構築
これらのモードオプションに修飾オプションを組み合わせることで、様々な操作が実現できます。
初心者のうちは特によく使う「-ivh」「-Uvh」「-e」「-qa」「-qi」の5つをしっかり覚えておくとよいでしょう。
修飾オプションの一覧と意味
修飾オプションはモードオプションと組み合わせて使うことで、操作をより細かく制御できます。
| 修飾オプション | 意味 | 主な組み合わせ例 |
|---|---|---|
| -v / –verbose | 詳細情報を表示 | -ivh、-Uvh |
| -h / –hash | 進捗をハッシュ記号で表示 | -ivh、-Uvh |
| –test | テスト実行(実際には変更しない) | -ivh –test |
| –nodeps | 依存関係チェックを無視 | -ivh –nodeps |
| –force | 強制インストール(競合・既存を上書き) | -ivh –force |
| –oldpackage | 古いバージョンへのダウングレードを許可 | -Uvh –oldpackage |
| –replacepkgs | インストール済みパッケージの再インストール | -ivh –replacepkgs |
| –noscripts | インストール前後のスクリプトを実行しない | -ivh –noscripts |
「–force」や「–nodeps」は便利に見えますが、システムの一貫性を壊すリスクがあるため、本番環境での使用は慎重に判断することが重要です。
テスト環境での確認後、本番環境に適用するという手順を守ることで、トラブルを未然に防ぐことができます。
オプションの短縮形と長形式の違い
rpmコマンドのオプションには「-i」のような短縮形(シングルダッシュ)と「–install」のような長形式(ダブルダッシュ)の2種類があります。
どちらを使っても同じ動作をしますが、スクリプトや設定ファイルに記述する場合は意味が明確な長形式を使うとメンテナンス性が向上します。
コマンドラインで素早く入力したい場合は短縮形が便利です。
チームでの運用マニュアルを作成する際は、長形式を採用して可読性を高めることをおすすめします。
照会(クエリ)オプションの使い方と実行例
続いては、rpmコマンドの照会オプション(-q系)の詳しい使い方と実行例について確認していきます。
照会オプションはシステム管理・セキュリティ確認・トラブルシューティングで日常的に使うため、しっかり理解しておくことが大切です。
rpm -qa:全パッケージ一覧の確認方法
「rpm -qa」はインストール済みの全パッケージを一覧表示する最も基本的な照会コマンドです。
コマンド例と出力イメージ
実行:rpm -qa
出力例:
bash-5.1.8-6.el9.x86_64
glibc-2.34-60.el9.x86_64
openssl-3.0.7-27.el9.x86_64
(以下多数)
grepとの組み合わせ
rpm -qa | grep python → pythonを含むパッケージを抽出
rpm -qa | sort → アルファベット順に並び替え
rpm -qa | wc -l → インストール済みパッケージ数を表示
「rpm -qa –last」とすると、インストール日時が新しい順に並び替えて表示されます。
最近インストールまたは更新されたパッケージを確認したいときに非常に便利です。
セキュリティ監査の場面では、予期しないパッケージがインストールされていないかを定期的に「rpm -qa」で確認する習慣が重要でしょう。
rpm -qi:パッケージの詳細情報を表示する
特定のパッケージの詳細情報を確認するには「rpm -qi パッケージ名」を使います。
コマンド例と出力内容
実行:rpm -qi bash
出力される主な情報:
Name(パッケージ名)
Version(バージョン番号)
Release(リリース番号)
Architecture(アーキテクチャ)
Install Date(インストール日時)
Size(インストールサイズ)
License(ライセンス種別)
Summary(概要説明)
Description(詳細説明)
インストール日時やライセンス情報まで確認できるため、資産管理やコンプライアンス確認に役立ちます。
未インストールのrpmファイルを調べる場合は「rpm -qip ファイル名.rpm」と「-p」オプションを追加します。
インストール前にパッケージの概要を把握しておくことで、意図しないソフトウェアの導入を防ぐことができます。
rpm -ql・-qf・-qR:ファイルリストと依存関係の確認
パッケージに含まれるファイルの一覧や依存関係を調べるオプションも非常に重要です。
ファイル・依存関係系の照会コマンド
rpm -ql パッケージ名:インストールされた全ファイルの一覧
rpm -qc パッケージ名:設定ファイルのみ表示
rpm -qd パッケージ名:ドキュメントファイルのみ表示
rpm -qR パッケージ名:このパッケージが必要とするもの(依存先)
rpm -q –provides パッケージ名:このパッケージが提供するもの
rpm -qf /usr/bin/bash:ファイルがどのパッケージに属するかを逆引き
「rpm -qf」の逆引き機能は特に実用的で、設定ファイルや実行ファイルがどのパッケージから来ているかをすぐに特定できます。
不審なファイルを発見した際の原因調査や、設定ファイルの管理元パッケージ特定など、様々な場面で活躍します。
「rpm -qR」で依存関係を確認しておくことで、パッケージ削除時に影響が及ぶ範囲を事前に把握できるでしょう。
インストール・アップグレード・削除オプションの実践
続いては、インストール・アップグレード・削除に関するオプションの実践的な使い方について確認していきます。
rpm -ivh:インストールの基本と詳細オプション
パッケージのインストールには「-ivh」の組み合わせが最も一般的です。
インストール関連コマンド実行例
基本インストール
rpm -ivh httpd-2.4.51-7.el9.x86_64.rpm
テスト実行(実際にはインストールしない)
rpm -ivh –test httpd-2.4.51-7.el9.x86_64.rpm
依存関係を無視して強制インストール(非推奨)
rpm -ivh –nodeps httpd-2.4.51-7.el9.x86_64.rpm
複数パッケージを同時インストール
rpm -ivh パッケージ1.rpm パッケージ2.rpm パッケージ3.rpm
複数のパッケージを同時に指定することで、依存関係を持つパッケージ群を一括インストールすることができます。
インストールが成功すると、画面に「########## [100%]」のような進捗バーが表示されて完了します。
rootユーザーまたはsudo権限が必要なため、権限がない場合はエラーが発生します。
rpm -Uvh と -Fvh:アップグレードの使い分け
パッケージのアップグレードには「-U」と「-F」の2種類のオプションがあり、使い分けが重要です。
アップグレードオプションの違い
rpm -Uvh パッケージ名.rpm
→ 未インストールでも新規インストールされる(汎用的)
rpm -Fvh パッケージ名.rpm
→ 既にインストール済みの場合のみアップグレード
→ 未インストールのパッケージはスキップされる
ダウングレード
rpm -Uvh –oldpackage 古いバージョン.rpm
「-F」オプションは複数のrpmファイルを一括処理する際に、インストールされていないパッケージを誤ってインストールしないために有用です。
カーネルのアップデートには「-U」ではなく「-i」を使うことが推奨されます。
「-U」でカーネルをアップグレードすると古いカーネルが削除されてしまい、起動トラブル時の回避手段が失われるためです。
rpm -e:パッケージ削除のオプションと注意点
パッケージの削除には「-e(erase)」オプションを使います。
削除コマンドの実行例
基本的な削除
rpm -e パッケージ名
例)rpm -e httpd
詳細表示付きで削除
rpm -ev パッケージ名
テスト実行(実際には削除しない)
rpm -e –test パッケージ名
依存関係を無視して強制削除(要注意)
rpm -e –nodeps パッケージ名
削除の際にはファイル名(.rpm)ではなくパッケージ名を指定する点に注意が必要です。
パッケージ名が不明な場合は「rpm -qa | grep 検索ワード」で事前に確認してから削除コマンドを実行しましょう。
「–nodeps」による強制削除は、他のパッケージが依存しているライブラリを削除してしまい、システムに重大な影響を与える可能性があるため、慎重に使用することが求められます。
検証・署名確認オプションの活用方法
続いては、パッケージの検証と署名確認に関するオプションの使い方について確認していきます。
セキュリティ管理の観点から、これらのオプションは非常に重要です。
rpm -V:パッケージの整合性検証
インストール済みパッケージのファイルが正しい状態かどうかを検証するには「-V(verify)」オプションを使います。
検証コマンドの実行例
特定パッケージの検証
rpm -V パッケージ名
全パッケージの検証
rpm -Va
検証結果の読み方
S:ファイルサイズが変更されている
M:パーミッション(権限)が変更されている
5:MD5チェックサムが一致しない(内容が変更されている)
L:シンボリックリンクが変更されている
U:ファイルのオーナーが変更されている
G:ファイルのグループが変更されている
T:更新時刻(タイムスタンプ)が変更されている
D:デバイスファイルのメジャー・マイナー番号が変更されている
「rpm -Va」で全パッケージを検証すると、変更されたファイルが一覧表示されます。
セキュリティインシデント発生時に、システムファイルが改ざんされていないかを確認する手段として非常に有効です。
設定ファイルは通常インストール後に変更されるため、「.c」(設定ファイル)のマークが付いている変更は正常な場合が多いでしょう。
rpm -K:パッケージ署名の確認
rpmファイルのGPG署名とMD5チェックサムを確認するには「-K(checksig)」オプションを使います。
署名確認コマンド
rpm -K パッケージファイル名.rpm
出力例(署名が正常な場合)
パッケージファイル名.rpm: digests signatures OK
GPG公開鍵のインポート
rpm –import GPG公開鍵ファイル
例)rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
「digests signatures OK」と表示されれば、パッケージの内容が改ざんされておらず、正規の発行元からのものであることが確認できます。
インターネットからダウンロードしたrpmファイルは、必ず署名確認を行ってからインストールする習慣をつけることが重要です。
rpmのデバッグオプションとその活用
rpmコマンドにはトラブルシューティングに役立つデバッグ用オプションも用意されています。
デバッグ・診断オプション
rpm -ivh –test:インストールのシミュレーション
rpm –showrc:rpmの設定値を表示
rpm –querytags:照会で使えるタグ名の一覧を表示
rpm -q –queryformat:カスタムフォーマットで情報を表示
例)rpm -qa –queryformat “%{NAME} %{VERSION}\n”
「–queryformat」オプションを使うと、表示する情報の形式を自由にカスタマイズできます。
システム棚卸しや監査レポートの作成時に、必要な項目だけを抽出して整形出力することが可能です。
スクリプトと組み合わせることで、パッケージ情報の定期レポート自動生成なども実現できるでしょう。
実践シナリオ別rpmオプション活用ガイド
続いては、実際の現場でよくあるシナリオ別にrpmコマンドの活用方法を確認していきます。
セキュリティ監査でのrpmコマンド活用
セキュリティ監査においてrpmコマンドは強力なツールです。
セキュリティ監査向けコマンド集
インストール済み全パッケージをファイルに保存
rpm -qa –queryformat “%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n” > installed_packages.txt
最近インストール・更新されたパッケージを確認
rpm -qa –last | head -20
全パッケージのファイル整合性チェック
rpm -Va 2>&1 | grep -v “^……….c”
(設定ファイルの変更を除外して表示)
定期的にパッケージ一覧をファイルに保存し、差分比較することで不正なパッケージのインストールを検知できます。
「rpm -Va」の結果を定期的にログとして保存しておくことで、ファイル改ざんの早期発見にもつながります。
システム移行・再構築でのrpmコマンド活用
サーバーの移行や再構築の場面でも、rpmコマンドは重要な役割を果たします。
システム移行向けコマンド集
移行元のパッケージ一覧をエクスポート
rpm -qa > old_server_packages.txt
移行先で同じパッケージをインストール(dnfを使用)
cat old_server_packages.txt | xargs dnf install -y
特定パッケージのインストール日時を確認
rpm -q –queryformat “%{INSTALLTIME:date} %{NAME}\n” パッケージ名
移行元と移行先でインストール済みパッケージを比較することで、移行漏れを防ぐことができます。
ただし、アーキテクチャやOSバージョンが異なる場合は、すべてのパッケージがそのまま移行できるとは限らないため、慎重な確認が必要です。
開発環境でのrpmコマンド活用
開発環境の構築や管理においても、rpmコマンドは欠かせないツールです。
特定のライブラリの開発用ヘッダーファイルがどのパッケージに含まれるかを「rpm -qf」で確認したり、インストール済みライブラリのバージョンを「rpm -q」で確認したりする場面が多くあります。
「rpm -ql」でパッケージがインストールするファイルの場所を確認することで、コンパイル時のインクルードパスやライブラリパスの設定に役立てることができます。
Dockerコンテナや仮想マシンのベースイメージに含まれるパッケージを「rpm -qa」で確認し、不要なパッケージを削除することでイメージの軽量化にも活用できます。
まとめ
今回は、rpmコマンドの主要オプション一覧・照会・インストール・削除・検証・署名確認・実践シナリオ別の活用方法について詳しく解説しました。
rpmコマンドのオプションは多岐にわたりますが、日常的によく使うのは「-qa(全パッケージ確認)」「-qi(詳細情報)」「-ivh(インストール)」「-Uvh(アップグレード)」「-e(削除)」「-V(検証)」の6つです。
これらを確実に使いこなした上で、「-qf(逆引き)」「-K(署名確認)」「–queryformat(カスタム出力)」などの応用オプションを身につけることで、より高度なシステム管理が実現します。
セキュリティ監査・システム移行・開発環境管理など、様々な場面でrpmコマンドを活用することが重要です。
rpmコマンドのオプションをしっかり理解することが、信頼性の高いLinux環境を維持するための基盤となります。
ぜひ本記事を参考に、rpmコマンドを自在に使いこなしていただければ幸いです。