RPM 機能は、シェルプロンプトでさまざまなコマンドを入力することによっても使用できます。Gnome-RPM で利用できる機能はすべて自由に使え、さらにパッケージを 最新の状態にする (アップグレードと類似した機能) 機能などの追加機能があります (詳細は「the section called 最新の状態にする」を参照)。
RPM に関するさらに詳しい情報は、ドキュメンテーション CD の『Official Red Hat Linux リファレンスガイド』に記載された関連各章を参照してください。また、man rpm と入力すれば関連するページを参照でき、また rpm --help と入力すればヘルプファイルを表示できます。
RPM パッケージの典型的なファイル名は foo-1.0-1.i386.rpm のようになっています。この名前は、パッケージ名 (foo)、バージョン (1.0)、リリース (1)、およびアーキテクチャ (i386) で構成されています。パッケージのインストールは以下のように入力するだけです。
# rpm -ivh foo-1.0-1.i386.rpm foo #################################### #
RPM はパッケージの名前 (必ずしもファイル名と同じではありません) を出力し、パッケージのインストール中には連続するハッシュマークを進行メーターとして出力します。
また、パッケージのインストールは upgrade オプションでも行えます。詳しくは、「the section called アップグレード」を参照してください。
インストール時には、そのパッケージはすでにインストールされている、または依存関係の問題があってパッケージのインストールができない、などのメッセージが出され、エラーとなることがあります。
発生する可能性のあるエラーの種類については、このまま以下をお読みください。
パッケージがすでにインストールされている場合は、以下のメッセージが表示されます。
# rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error:foo-1.0-1.i386.rpm cannot be installed #
かまわずにパッケージをインストールする場合は、コマンドラインで --replacepkgs を使用できます。このコマンドは RPM にエラーを無視するように指示します。
# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm foo #################################### #
別のパッケージによってインストールされたファイルを含むパッケージをインストールしようとすると、以下のメッセージが表示されます。
# rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error:foo-1.0-1.i386.rpm cannot be installed #
このエラーを RPM に無視するように指示するには、コマンドライン上で、--replacefiles を使用します。
# rpm -ivh --replacefiles foo-1.0-1.i386.rpm foo #################################### #
RPM パッケージは他のパッケージに「依存」することがあります。つまり、ある RPM パッケージが正しく動作するために他のパッケージのインストールが必要になることがあります。未解決の依存関係を持つパッケージをインストールしようとすると、以下のようなメッセージが表示されます。
# rpm -ivh bar-1.0-1.i386.rpm failed dependencies:foo is needed by bar-1.0-1 #
このエラーに対処するためには、要求されたパッケージをインストールする必要があります。それでも、インストールを強行したい場合 (おそらくそのパッケージは正しく動作しないのでお奨めできませんが) には、コマンドライン上で --nodeps を使用します。
パッケージのアンインストールも簡単です。
# rpm -e foo #
パッケージをアンインストールする場合、オリジナルパッケージの名前 (foo-1.0-1.i386.rpm) ではなく、パッケージ名 (foo) を使用している点に注意してください。
削除しようとしているパッケージに依存したパッケージがある場合には、依存関係エラーが発生することがあります。例えば、
# rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1 #
RPM にこのエラーを無視させ、かまわずにパッケージのアンインストールするには (おそらく依存しているパッケージが正しく動作しなくなるのであまりお奨めできません)、コマンドライン上で --nodeps を使用します。
パッケージのアップグレードはインストールと似ています。
# rpm -Uvh foo-2.0-1.i386.rpm foo #################################### #
アップグレードを行うと、RPM では古いバージョンの foo パッケージを自動的にアンインストールします。
パッケージのインストールには、upgrade を使用するのもよいでしょう。このコマンドでは旧バージョンのパッケージがインストールされていなかった場合でも正常に動作します。
RPM では高度なパッケージアップグレード処理を行いますので、以下のようなメッセージが表示されることがあります。
# rpm -Uvh foo-1,0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error:foo-1.0-1.i386.rpm cannot be installed #
そのまま、「アップグレード」(実際はダウングレードですが) を続ける場合は、コマンドラインで --oldpackage を使用します。
# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm foo #################################### #
パッケージを最新にするのはアップグレードと似ています。
# rpm -Fvh foo-1.2-1.i386.rpm foo #################################### #
RPM の freshen オプションは、コマンドライン上で指定されたパッケージのバージョンと、すでにシステム上にインストールされているパッケージのバージョンを照合します。すでにインストールされているパッケージにより新しいバージョンがある場合、RPM の freshen オプションで処理されるとその新しいバージョンにアップグレードされます。ただし、同名のパッケージが事前にインストールされていない場合はパッケージのインストールは行われません。この点が RPM の upgrade オプションと異なります。アップグレードの場合、古いバージョンのパッケージがすでにインストールされている、いないにかかわらずパッケージはインストールされます。
インストールされたパッケージに関するデータベース問い合わせは、rpm -q で行います。このコマンドの簡単な使用例は、rpm -q foo で、この例ではインストールされたパッケージパッケージ foo のパッケージ名、バージョン、およびリリース番号が出力されます。
# rpm -q foo foo-2.0-1 #
パッケージ名を指定する代わりに、以下のオプションを -q コマンドと使用して、問い合わせ照会を行うパッケージを指定することもできます。これらのオプションをパッケージ指定オプションといいます。
-a 現時点でインストール済のすべてのパッケージを問い合わせします。
-f <ファイル> <ファイル> を所有するパッケージを問い合わせします。.
-p <パッケージファイル> <パッケージファイル> というパッケージを問い合わせします。
問い合わせ対象パッケージについて照会する情報を指定する方法はたくさんあります。以下のオプションは、検索する情報のタイプを選択するために使用されます。これらのオプションを情報選択オプションといいます。
-i 名前、説明、リリース、サイズ、ビルド日付、インストール日付、ベンダ、およびその他の情報などのパッケージ情報が表示されます。
-l パッケージが「所有する」ファイルの一覧が表示されます。
-s パッケージに含まれるすべてのファイルの状態が表示されます。
-d ドキュメント (man ページ、info ページ、README など) のマークが付いたファイルの一覧が表示されます。
-c 設定ファイルのマークが付いたファイルの一覧が表示されます。設定ファイルは、インストール後にシステムに合わせてパッケージを調整するために変更するファイルです (sendmail.cf、passwd、Inittab、など)。
ファイル一覧を表示するオプションの場合、コマンドラインに -v を追加すると通常使用している ls -l 形式で一覧を取得することができます。
パッケージの検証では、パッケージからインストールされたファイルに関する情報と、元のパッケージに含まれるファイルに関する同一情報が比較されます。特に、各ファイルのサイズ、MD5 サム、権限、タイプ、所有者、およびグループが比較されます。
コマンド rpm -V によってパッケージが検証されます。検証するパッケージの指定には、問い合わせの説明で挙げた任意のパッケージ選択オプションを使用できます。簡単な使用法は、rpm -V foo で、これは foo パッケージの全ファイルが当初インストールされたときのままであることを検証します。例えば、
特定ファイルを含むパッケージを検証するには、
rpm -Vf /bin/vi
インストール済のすべてのパッケージを検証するには、
rpm -Va
インストール済のパッケージを RPM パッケージファイルと照合するには、
rpm -Vp foo-1.0-1.i386.rpmこれは、RPM データベースが損傷している疑いがある場合に便利です。
すべてが正常に検証された場合は何も出力されません。矛盾があった場合は、それが表示されます。出力のフォーマットは 8 字の文字列であり、「c」 は設定ファイルを表し、ファイル名が続きます。8 文字の各文字は、ファイルの属性の 1 つと RPM データベースに記録されたその属性の値を比較した結果を表します。ピリオド (.) 1 つの場合、テストに合格したことを表します。以下の文字は、何らかのテストで不合格になったことを表します。
5 -- MD5 チェックサム
S - ファイルサイズ
L - シンボリックリンク
T - ファイル修正時刻
D -- デバイス
U -- ユーザ
G -- グループ
M - モード (権限とファイルタイプを含む)
情報が出力された場合は、良く考えて、パッケージを削除するのか、再インストールするのか、または問題を修正するのかを判断してください。