RPM - RPM Package Manager

IV.17.3.1. rpmパッケージのインストール (rpm -i)

パッケージpackage-1-2vl3.i386.rpmをインストールするには、オプション-i(Install;インストール)を用います。

# rpm -ivh package-1-2vl3.i386.rpm

オプション-v(verbose)と-h(hash)を用いるとインストール中にハッシュマーク(#)が出て、インストールの進む様子がわかります。

例 IV.17-5依存関係(dependency)の解決

パッケージをインストールしようとしたときに、

libdepend.so.1 is needed by package-1-2vl3
sometool is needed by package-1-2vl3
もしくは、
libdepend.so.1 が package-1-2vl3 に必要です
sometool が package-1-2vl3 に必要です
などというエラーが出ることがあります。 これは「パッケージ package-1-2vl3の中に、 libdepend.so.1というライブラリやsometoolというパッケージを必要とするファイルがあるにもかかわらず、 libdepend.so.1やsometoolがシステムにインストールされていない」ことによるエラーです。 このときには、 ライブラリlibdepend.so.1を含むパッケージや、パッケージsometoolを探してきてインストールして下さい。 セクション IV.17.2.8 - apt-cacheコマンドによるパッケージの検索を参照してください。

もし、このような依存性を無視してインストールしたいときには、オプション --nodepsを用いてインストールします。

# rpm -i --nodeps package-1-2vl3.i386.rpm
とします。ただし、この場合にはインストールしたパッケージが正常に動作しない可能性があります。

例 IV.17-6競合(conflict)の解決

package-1-2vl3.i386.rpmのインストール時に、

/usr/bin/cmd conflicts with file from another-3-4vl5
もしくは、
/usr/bin/cmd は another-3-4vl5 のファイルと競合します
というエラーが出た場合には、package-1-2vl3のファイル/usr/bin/cmdが、 すでにインストール済みのパッケージ another-3-4vl5のファイル/usr/bin/cmdと競合するために、 インストールできないことを示します。 もし、無理矢理インストールしたいときには、オプション--forceを用います。
# rpm -ivh --force package-1-2vl3.i386.rpm
しかし、この場合には、元からあったanother-3-4vl5のファイル/usr/bin/cmdは、 package-1-2vl3によって上書きされてしまうので、取扱には注意が必要です。

IV.17.3.2. rpmパッケージのアップグレード (rpm -F)

すでに、package-1-1vl1.i386.rpmがインストールされていて、 新しいpackage-1-2vl3.i386.rpmにバージョンアップしたいときには、オプション -F(Freshen;新しいものに変える)を用います。

古いバージョンのパッケージがインストールされている場合にのみパッケージを更新します。 新しいバージョンのパッケージがインストールされ、古いバージョンのパッケージは削除されます。

# rpm -Fvh package-1-2vl3.i386.rpm

ここで、オプション-vhの役割はインストールの時と同じです。

IV.17.3.3. rpmパッケージのインストールとアップグレード (rpm -U)

インストール -i に アップグレード -F も追加したものです。 古いバージョンのパッケージが、インストールされていなければ -i としてインストールし、 インストールされていれば -F として更新します。 新しいバージョンのパッケージがインストールされ、古いバージョンのパッケージは削除されます。

-U(Update;更新)を用います。

# rpm -Uvh package-1-2vl3.i386.rpm

オプション-vhの役割はインストールの時と同じです。

また、古いバージョンpackage-1-1vl1.i386.rpmに戻したいときには、オプション --oldpackageを用います。

# rpm -Uvh --oldpackage package-1-1vl1.i386.rpm

IV.17.3.4. rpmパッケージの削除 (rpm -e)

インストールしたパッケージを削除(アンインストール)したくなったら、オプション -e(erase;削除)を用います。

# rpm -e package

ここで、バージョン番号やリリース番号は要りませんが、明示して

# rpm -e package-1-2vl3
とすることもできます。ただし, パッケージpackageに含まれるファイル somefileが他のパッケージで利用されている場合には、
removing these packages would break dependencies:
somefile is needed by another_pkg
もしくは、
これらのパッケージを必要としているパッケージがあります:
somefile が another_pkg に必要です
などというエラーメッセージが出て削除できません。 無視して削除したいときには, オプション--nodepを用います。

# rpm -e --nodeps package

しかし、この場合は パッケージanother_pkgが動かなくなる可能性がありますので注意が必要です。

IV.17.3.5. rpmパッケージに関する情報を得る (rpm -q)

例 IV.17-7インストールされているrpmパッケージの情報を得る

パッケージをインストールしたけれでも、バージョンを忘れてしまったので知りたいと言うときには、 オプション-q(query)を用います。例えば、 パッケージ soxについて知りたい場合を示します。

$ rpm -q sox         (soxのバージョンを知りたいとき)
sox-12.18.1-0vl2
また、オプション -i(information;情報)を併用して、
$ rpm -qi sox
Name        : sox                          Relocations: (not relocatable)
Version     : 12.18.1                           Vendor: (none)
Release     : 0vl2                          Build Date: 2006年09月04日 14時02分44秒
Install Date: 2006年10月18日 00時56分44秒      Build Host: windy.local.dicey.org
Group       : Applications/Multimedia       Source RPM: sox-12.18.1-0vl2.src.rpm
Size        : 675803                           License: LGPL
Signature   : DSA/SHA1, 2006年09月04日 14時02分44秒, Key ID 90bf4c0974322cb0
Packager    : Daisuke SUZUKI <daisuke@linux.or.jp>
URL         : http://sox.sourceforge.net/
Summary     : 汎用サウンドファイル変換ツール
Description :
SoX (Sound eXchange) は Linux, UNIX, DOS PC 用サウンドファイルフォーマット
変換ツールです.SoX は「サウンドツール界のスイスアーミーナイフ」で,
様々なデジタルサウンドフォーマットを相互に変換したり,
簡単なサウンドエフェクト等の処理も行うことが出来ます.
このように、パッケージに関するいろいろな情報を得ることができます。さらに オプション-l(list;一覧)を用いると、パッケージに含まれるファイル一覧が表示されます。
$ rpm -ql sox
/usr/bin/libst-config
/usr/bin/play
/usr/bin/rec
/usr/bin/sox
/usr/bin/soxmix
/usr/bin/soxplay
/usr/share/doc/sox-12.18.1
/usr/share/doc/sox-12.18.1/Changelog
/usr/share/doc/sox-12.18.1/INSTALL
/usr/share/doc/sox-12.18.1/README
/usr/share/doc/sox-12.18.1/TODO
/usr/share/man/man1/rec.1.gz
/usr/share/man/man1/sox.1.gz
/usr/share/man/man1/soxexam.1.gz
/usr/share/man/man1/soxmix.1.gz

これらのオプションを全て付けることもできます。表示が多い場合はページャ lessを用いると便利です。(参考:第II.7章 - ページャ less の操作方法)

# rpm -qil package | less
また、grepコマンドを用いれば、探したいパターンpatternを検索することができます。
$ rpm -qil package | grep pattern

例 IV.17-8持ってきたrpmファイルに関する情報を得る

インストールされているパッケージでなく、持ってきたパッケージ package-1.0-2vl3.i386.rpmの情報やファイル一覧を知りたいときには、オプション -p(package)を併用します。この場合は〜i386.rpmまでを含むファイル名全体を指定します。

$ rpm -qilp package-1.0-2vl3.i386.rpm
さらにオプション-v(verbose)も使って
$ rpm -qilvp package-1.0-2vl3.i386.rpm
とすると、各ファイルの属性なども表示されます。

例 IV.17-9インストールされているファイルの属するパッケージ名を知る

インストールされているファイル/usr/bin/playが、どのパッケージに含まれているものなのかを知りたいときには、 オプション-f(file;ファイル)を用いるとパッケージ名が表示されます。

$ rpm -qf /usr/bin/play
sox-12.18.1-0vl2