RPM コマンドの使い方

Linux活用日記


Last modified: Sat Dec 22 2001


Table of Contents





インストールオプション


RPM パッケージのインストールには以下のオプションを使います.
(package-1.1.0-i386.rpm をインストールする場合)

 

# rpm -i package-1.1.0-i386.rpm



複数のパッケージをインストールする場合は以下のように出来ます.

# rpm -i package-1.1.0-i386.rpm package-devel-1.1.0-i386.rpm


以下のオプションを付けるとより詳細な情報が表示されます. 例えば -v で詳細な情報を出力し, -h はインストールの進行状況を表示します.

# rpm -ivh package-1.1.0-i386.rpm


進行状況をパーセント表示したいなら

# rpm -i --percent package-1.1.0-i386.rpm


既にインストールされているパッケージのアップグレードには以下のオプションを使います.

# rpm -U package-1.1.0-i386.rpm

ここでも上述の -v や -h を使えます.



既にインストール済みのパッケージよりも古いパッケージをインストールするには

# rpm -i --oldpackage package-1.1.0-i386.rpm


を使います. インストール済みの他のパッケージに含まれるファイルを置き換えてしまう場合にもインストールを実行するには,

# rpm -i --replacefiles package-1.1.0-i386.rpm

を使います.

インストール済みのパッケージを再インストールする場合には,

# rpm -i --replacepkgs package-1.1.0-i386.rpm

を使います.

--oldpackage
--replacefiles
--replacepkgs

これらを集約したオプションが --force です.

# rpm -i --force package-1.1.0-i386.rpm


これで強制的にパッケージをインストールすることになります.

もしインストール時にパッケージの依存関係でエラーが出てインストール出来ない場合に依存関係を無視してインストールするには,

# rpm -i --nodeps package-1.1.0-i386.rpm


または

# rpm -i --force --nodeps package-1.1.0-i386.rpm

とします. ただし, 依存関係を無視してインストールしてもまともに動かないことがほとんどですのでおすすめは出来ません. しかし中には敢えてこのオプションを使った方がいい場合もありますが.


実際にインストールを行わずテストだけにしたい場合は以下のオプションを使います.

# rpm -i --test package-1.1.0-i386.rpm


RPM コマンドの使い方を表示したいときには

# rpm --help


* 何らかの理由などで RPM のデータベースが壊れて正常にパッケージ管理やインストールができなくなったときには以下のオプションを使ってデータベースの再構築を行います.

# rpm --rebuilddb





クエリーオプション


パッケージの問い合わせをしたいときには以下にご紹介するオプションを使います.


インストールされているパッケージを確認するには,

$ rpm -q xfce
xfce-3.0.4


インストール済みの全パッケージを確認するには,

$ rpm -qa
setup-2.1.8-1
filesystem-1.3.5-1
basesystem-6.0-4
ldconfig-1.9.5-16
glibc-2.1.3-15
..............


あるファイルがどのパッケージに含まれていたものかを確認するには,

$ rpm -qf /usr/X11R6/lib/libX11.so.6
XFree86-libs-3.3.6-20j1


これにより libX11.so.6 が XFree86-libs-3.3.6-20j1 に含まれていたことがわかります.


あるコマンドの機能を提供しているのがどのパッケージかを調べるには --whatprovides を使います.

$ rpm -q --whatprovides /usr/bin/strip
binutils-2.9.5.0.22-6


あるパッケージが依存している(必要とする)ファイルを確認するには -R を使います.

$ rpm -qR xfce
libungif.so.4
libz.so.1
/bin/bash
/bin/sh
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
.............


まだインストールされていないパッケージに対して問い合わせすることも出来ます.

$ rpm -qpR gnomail-0.0.3-1.i386.rpm
ld-linux.so.2
libICE.so.6
libSM.so.6
libX11.so.6
libXext.so.6
libXpm.so.4
libart_lgpl.so.2
...................


この例では -p が, まだインストールされていないパッケージに対しての問い合わせオプションで, R を付けることにより未インストールのパッケージが依存しているファイルを出力しています.


パッケージに含まれているファイルを表示するには,

$ rpm -ql xfce
/etc/X11/xfce/README.xfdefs.py
/etc/X11/xfce/Xclients
/etc/X11/xfce/fvwm2rc
/etc/X11/xfce/fvwmrc
/etc/X11/xfce/xfbdrc
/etc/X11/xfce/xfce3rc
..............


パッケージに含まれるファイルが正常かどうか確認するには,

$ rpm -qs rpm-3.0.4-0.48
正常 bin/rpm
正常 etc/rpm
正常 usr/bin/gendiff
正常 ...........


インストール時に実行されるスクリプトが含まれているか確認するには --scripts を使えば存在する場合にスクリプトを出力します.

$ rpm -q --scripts rpm-3.0.4-0.48
postinstall script (through /bin/sh):
/bin/rpm --initdb
if [ ! -e /etc/rpm/macros -a -e /etc/rpmrc -a -f /usr/lib/rpm/convertrpmrc.sh ]
then
sh /usr/lib/rpm/convertrpmrc.sh > /dev/null 2>&1
fi


パッケージの詳しい情報を確認したい時は,

$ rpm -qi rpm-3.0.4-0.48
Name : rpm Relocations: (not relocateable)
Version : 3.0.4     Vendor: Red Hat, Inc.
Release : 0.48     Build Date: Thu 02 Mar 2000 05:25:11 AM JST
Install date: Fri 16 Jun 2000 08:00:58 PM JST
..............................



依存関係のエラー


RPM パッケージをインストールしようとした時にそのパッケージと依存関係のあるパッケージがインストールされていなければエラーとなってインストール出来ません. しかし, 依存関係のあるパッケージ同士をそれぞれインストールしようとした時に片方が無いためにエラーが出てインストールできない場合はどうすればいいのでしょうか?例えば下記のような例です.

abc1-1.2.i386.rpm
zxv-2.0.i386.rpm

これらはそれぞれ依存関係にあるパッケージだとした場合, 片側をインストールしようとすると,

# rpm -ivh abc1-1.2.i386.rpm
エラー: 依存性の欠如:
    zxv >= 2.0 は abc1-1.2 に必要とされています

# rpm -ivh zxv-2.0.i386.rpm
エラー: 依存性の欠如:
    abc1 >= 1.2 は zxv-2.0 に必要とされています

もしもこのような状況になってしまえばどちらもインストールできません. このようになってしまった場合は以下のようにすれば解決できるでしょう.

# rpm -ivh abc1-1.2.i386.rpm zxv-2.0.i386.rpm




HOME