このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】rpmコマンドでの情報照会
rpmコマンドでの情報照会
rpmコマンドは、Red Hat系Linuxディストリビューション(例:CentOS、Fedora)で使用されるパッケージ管理ツールです。-q
(--query
)モードを利用すると、指定したパッケージに関する情報を照会できます。このモードを使って、パッケージがシステムにインストールされているか、またその詳細情報を確認することができます。
rpmコマンド(情報照会)の概要
例えば、rpm -q
コマンドを使用して特定のパッケージがインストールされているかどうかを確認できます。パッケージがインストールされている場合、そのパッケージ名やバージョン情報が表示されます。以下は基本的な構文です。
【構文】rpm -q [オプション] [引数]
-q
モードと併用する主なオプション
以下は、-q
モードと併用される主なオプションとその説明を表にまとめたものです。
オプション(ショート) | オプション(ロング) | 引数 | 説明 |
---|---|---|---|
-a | --all | なし | システムにインストールされているすべてのパッケージをリスト表示します。 |
-i | --info | パッケージ名 | 指定したパッケージの詳細情報を表示します。 |
-R | --requires | パッケージ名 | 指定したパッケージが依存するファイルやライブラリ、パッケージを表示します。 |
-l | --list | パッケージ名 | 指定したパッケージに関連するファイルやディレクトリをリスト表示します。 |
-f | --file | ファイルパス | 指定したファイルがどのパッケージに含まれているかを表示します。 |
-p | --package | RPMファイルパス | インストールされていないRPMパッケージファイルの詳細情報を表示します。 |
コマンドの使用例と解説(CentOSの場合)
1.parted
パッケージのインストールの有無を確認する。
・「rpm -q parted
」コマンドを実行します。
このコマンドは、parted
パッケージがインストールされているかどうかを確認します。parted
はディスクパーティショニングを行うためのコマンドです。
[user01@localhost ~]$ rpm -q parted
parted-3.1-32.el7.x86_64
2.httpd
パッケージのインストールの有無を確認する。
・「rpm -q httpd
」コマンドを実行します。
このコマンドは、httpd
(Webサーバーパッケージ)がインストールされているかどうかを確認します。
[user01@localhost ~]$ rpm -q httpd
パッケージ httpd はインストールされていません。
3.間違ったパッケージ名を指定する。
・「rpm -q part
」コマンドを実行します。
パッケージ名を間違って入力した場合(例: part
)、パッケージが見つからない旨のメッセージが表示されます。このメッセージは、パッケージがインストールされていない場合と同様なので、注意が必要です。
[user01@localhost ~]$ rpm -q part
パッケージ part はインストールされていません。
4.-a
オプションを付け、パイプ機能とgrep
コマンドを併用して検索結果を絞り込む。
・「rpm -qa | grep part
」コマンドを実行します。
-a
オプションを使用してシステム内のすべてのインストール済みパッケージをリストし、その結果をgrep
コマンドで絞り込みます。これにより、パッケージ名が曖昧な場合でも正しいパッケージ名を特定できます。
[user01@localhost ~]$ rpm -qa | grep part
pyparted-3.9-15.el7.x86_64
parted-3.1-32.el7.x86_64
libblockdev-part-2.18-5.el7.x86_64
kpartx-0.4.9-136.el7_9.x86_64
5.parted
パッケージの詳細情報を表示する。
・「rpm -qi parted
」コマンドを実行します。
-i
オプションを使用して、parted
パッケージの詳細情報(バージョン、リリース情報、依存関係など)を確認します。
[user01@localhost ~]$ rpm -qi parted
Name : parted
Version : 3.1
Release : 32.el7
Architecture: x86_64
Install Date: 2023年12月31日 17時33分13秒
Group : Applications/System
Size : 2336852
License : GPLv3+
Signature : RSA/SHA256, 2020年04月04日 06時03分24秒, Key ID 24c6a8a7f4a80eb5
Source RPM : parted-3.1-32.el7.src.rpm
Build Date : 2020年04月01日 13時00分49秒
Build Host : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.gnu.org/software/parted
Summary : The GNU disk partition manipulation program
Description :
The GNU Parted program allows you to create, destroy, resize, move,
and copy hard disk partitions. Parted can be used for creating space
for new operating systems, reorganizing disk usage, and copying data
to new hard disks.
6.parted
パッケージの依存関係を確認する。
・「rpm -qR parted
」コマンドを実行します。
-R
オプションを使用して、parted
パッケージが依存しているファイルやライブラリ、パッケージを確認します。ファイル名にlib~.soが含まれるファイルはライブラリです。
[user01@localhost ~]$ rpm -qR parted
/bin/sh
/bin/sh
/sbin/install-info
/sbin/install-info
/sbin/ldconfig
...(省略)...
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
7.parted
パッケージ関連のファイルやディレクトリを確認する。
・「rpm -ql parted
」コマンドを実行します。
-l
オプションを使って、parted
パッケージによってインストールされたファイルやディレクトリの一覧を表示します。
[user01@localhost ~]$ rpm -ql parted
/lib64/libparted-fs-resize.so
/lib64/libparted-fs-resize.so.0
/lib64/libparted-fs-resize.so.0.0.0
/lib64/libparted.so.2
/lib64/libparted.so.2.0.0
/sbin/parted
/sbin/partprobe
/usr/share/doc/parted-3.1
/usr/share/doc/parted-3.1/API
/usr/share/doc/parted-3.1/AUTHORS
...(省略)...
/usr/share/locale/uk/LC_MESSAGES/parted.mo
/usr/share/locale/vi/LC_MESSAGES/parted.mo
/usr/share/locale/zh_CN/LC_MESSAGES/parted.mo
/usr/share/locale/zh_TW/LC_MESSAGES/parted.mo
/usr/share/man/man8/parted.8.gz
/usr/share/man/man8/partprobe.8.gz
8./sbin/parted
ファイルがどのパッケージに含まれているかを確認する。
・「rpm -qf /sbin/parted
」コマンドを実行します。
-f
オプションを使用して、指定したファイルがどのパッケージに含まれているかを確認できます。
[user01@localhost ~]$ rpm -qf /sbin/parted
parted-3.1-32.el7.x86_64
まとめ
rpm -q
モードとそのオプションは、Red Hat系Linuxディストリビューションにおいてパッケージ情報を詳細に管理するための重要なツールです。これを活用することで、システムにインストールされているパッケージの状態を簡単に把握し、必要に応じて詳細な情報を確認することができます。