連載
» 2016年09月21日 05時00分 UPDATE

Linux基本コマンドTips(49):【 rpm 】コマンド(応用編その2)――パッケージの情報を調べる(2)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。前回に続き、今回も「rpm」コマンドの応用編を解説します。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、パッケージのインストールやアップデート、アンインストールを行う「rpm」コマンドの応用編です。

rpmコマンドとは?

 「rpm」は、Red Hat系のLinuxディストリビューションで使われている“RPM(Red Hat Package Manager)パッケージ”を扱うことができるパッケージ管理コマンドです。

 RPMの作法に従ってインストールしたソフトウェアは、「RPMデータベース」と呼ばれるデータベースで管理されます。RPMデータベースを参照することで、現在、システムにインストールされているパッケージやそのバージョンなどが分かるようになっています。アンインストールする際も、このRPMデータベースの情報が使われます。

 なお、CentOSなどで使われている「Yum」というパッケージ管理システム(コマンド名:yum)も、RPMデータベースを参照しています(本連載第42回参照)。


書式

rpmコマンドの書式

rpm コマンドオプション [その他オプション] [パッケージ名など]

※[ ]は省略可能な引数を示しています



rpmコマンドの基本操作(問い合わせ関係)

rpm -qip パッケージファイル名

(パッケージの情報(説明など)を表示する)

rpm -qlp パッケージファイル名

(パッケージからインストールされたファイルの一覧を表示する)

rpm -qRp パッケージファイル名

(パッケージが依存しているファイルを表示する)

※「-p」はパッケージファイル(RPMファイル)を指定するためのオプション。インストールされているパッケージを調べる場合は「rpm -qi パッケージ名」のように指定する(本連載第48回参照)。





rpmコマンドの主なオプション

 rpmコマンドの主なオプションは次の通りです。

●コマンドオプション
短いオプション 長いオプション 意味
-i --install パッケージファイル名 パッケージをインストールする
-U --upgrade パッケージファイル名 パッケージをアップグレードする(「--install」と同じオプションが使用可能)
-F --freshen パッケージファイル名 以前のバージョンがインストールされているときのみパッケージをアップグレードする
-e --erase パッケージ パッケージをアンインストール(削除)する
-q --query 問い合わせ(パッケージ情報の表示と検索)
-V --verify パッケージを検査する

●共通のオプション(-i、-U、-qなどと同時に使用)
短いオプション 長いオプション 意味
-v 情報表示を増やす
-vv 「-v」指定時よりも詳細な情報を表示する(デバッグ用)
--quiet 情報表示を減らす(エラーメッセージのみになる)

●インストール/更新/削除時に使用できる共通オプション
短いオプション 長いオプション 意味
-h --hash インストール時の経過を「#」マーク(ハッシュマーク)で表示する
--test 実際のインストールなどは行わず、テストのみ行う
--nodeps パッケージの依存関係を検証しない

●インストール/更新時に使用できるオプション
短いオプション 長いオプション 意味
--excludepath OLDPATH パスの名前が「OLDPATH」で始まるファイルをインストールしない
--excludedocs 「man」なども含め、文書であるとマーク付されたファイルをインストールしない
--includedocs 文書ファイルをインストールする(デフォルト)
--ignoresize インストール前に、ディスクの空き領域をチェックしない
--ignorearch パッケージのアーキテクチャ(CPUなど)がインストール先と一致しなくてもインストールやアップグレードを行う
--ignoreos パッケージのOSがインストール先と一致しなくてもインストールやアップグレードを行う
--nosignature パッケージまたはへッダの署名を検査しない
--nosuggest 不明な依存性を解消するパッケージを提案しない
--noscriopts ファイルの配置だけを行いスクリプトは実行しない
--force 「--replacepkgs」「--replacefiles」「--oldpackage」相当
--replacepkgs 指定したパッケージが既にインストールされていてもインストールする
--replacefiles 他のパッケージによってインストールされたファイルを置き換えてしまう場合でもインストールする
--oldpackage インストール済みのパッケージよりもバージョンが古くても更新する

●情報問い合わせ関連(-q、-Vと一緒に使用するオプション)
短いオプション 長いオプション 意味
-a --all インストールされているパッケージを一覧表示する
-i パッケージの情報を表示する
--provides パッケージが提供する機能(ライブラリなど)を表示する
-R --requires 依存しているファイル名を表示する
--changelog パッケージの更新情報を表示する
-l --list パッケージに含まれるファイルを表示する
-c --configfiles 設定ファイルのみを表示する(「-l」を指定したものと見なす)
-d --docfiles 文書ファイルのみを表示する(「-l」を指定したものと見なす)
-f ファイル名 --file ファイル名 指定したファイルがどのパッケージからインストールされたのかを表示する(フィールドあるいはフルパスで指定)
-p パッケージ名ではなく、RPMパッケージファイルを指定して問い合わせる

●RPMデータベース関連オプション
短いオプション 長いオプション 意味
--initdb RPMデータベースの存在を確認し、ない場合は初期化をする
--rebuilddb 既存のデータベースからRPMデータベースを再構築する



どんなパッケージがインストールされるかを調べる

 パッケージファイル(RPM)ファイルに対し、パッケージの情報やインストールされるファイルを調べたい場合は、「-qilp」オプションを使用します。

 「-q」は問い合わせのオプション、「-i」はパッケージの情報、「-l」はパッケージのリストで、「-p」はパッケージ名ではなく、パッケージファイルを指定するときに使用するオプションです。

 なお、「-i」オプションを「-q」オプションと同時に使用する場合は、インストールではなく、問い合わせ内容を示すオプションとして機能します。

コマンド実行例

rpm -qip パッケージファイル名

(パッケージの情報を表示する)

rpm -qlp パッケージファイル名

(パッケージからインストールされたファイルを表示する)

rpm -qilp パッケージファイル名

(パッケージの情報とインストールされたファイルを表示する)(画面1


画面1 画面1 「perl-Git」のパッケージファイル(RPMファイル)を指定して、パッケージの情報とこのパッケージファイルからどんなファイルがインストールされるかを表示した


パッケージの依存先を調べる

 RPMパッケージをインストールする前に、どのようなパッケージに依存しているのか、何が必要なのかを調べるには、「-R(--require)」オプションを使用します。

コマンド実行例

rpm -qRp パッケージファイル名

(指定したパッケージの依存先を調べる)(画面2


画面2 画面2 「git」パッケージが依存するファイルの一覧を表示した。「perl(〜)」はPerlのモジュール

 「-R(--require)」オプションで表示できるのは“○○というライブラリのバージョン××”といった情報で、具体的にどのパッケージをインストールするかは、別途、名前やパッケージの情報などを元に調べる必要があります。

 依存するファイルがシステムに存在しない場合は、パッケージはインストールされません(「--nodeps」オプションを付けていない場合)。「rpm -i --test パッケージファイル名」のように、「--test」オプション付きで実行することで、実際にはインストールや更新、アンインストールせずに、警告などが表示されるかどうかをテストすることができます(画面3)。

画面3 画面3 「rpm -ivh」を「--test」オプション付きで実行(「--test」は一般ユーザーで実行可能)。この場合、「git」パッケージが入っていないのでインストールできないことが分かる

 なお、「yum」コマンドの場合は、依存しているパッケージが存在しなくても、同時にインストールすることができます。yumが使えるならば「yum install パッケージ名」(本連載第42回参照)、yumのパッケージリストにないなどで、パッケージファイルからインストールしたい場合は「yum localinstll パッケージファイル名」(次回解説)を実行するとよいでしょう。



パッケージが提供する機能を調べる

 「-R(--require)」オプションの逆に、“このパッケージはどんな機能を提供するのか”を調べる場合は「--provides」オプションを使用します。

 インストール前のパッケージファイルであれば「rpm -qp --provides パッケージファイル名」、インストール済みのパッケージであれば「rpm -q --provides パッケージ名」のように実行します。

コマンド実行例

rpm -qp --provides パッケージファイル名

(指定したパッケージファイルが提供する機能を調べる)(画面4


画面4 画面4 「--provides」オプションを付けると、パッケージファイルでインストールされる機能を確認できる


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。