トップページ>>>「いろいろ」目次
Linux初心者向けRPMコマンドの真髄
初版作成:2002/06/02
二版作成:2002/10/22(後書き或いは感想追加)
- 前書き
- 本題
- 後書き或いは感想
RHL(RedHatLinux)、TLX(TurboLinux)などの、DebianやSlackware系列以外の
主要ディストリビューションでは通常、アプリケーションのインストール・アンインストール管理にRPMというシステムを利用しています。
これは面倒なインストール・アンインストール作業を簡便にするものです。
では、よく使うインストール・アンインストールコマンドを見ていきましょう・・・。
・・・と言って解説されるのは大概-ivh だの-Uだの-eオプションである。
一体、インストール済の或るパッケージに含まれているファイル一覧を調べるのはどうすればよいのか。
たった一つか二つのオプションで済むはずのこの話を載せている「入門書」は
あまりない。初心者がもっとも知りたい情報であるにも関わらず。
コマンドリファレンスや詳しい設定集等には大抵載っているが、初心者が手にする
事の多い入門書にはあまり見かけない。というのも、普通は必要ないからだ。
とはいっても、Linuxのシステム上「インストールするディレクトリ」を聞かずに
勝手にファイルをコピーしてしまうRPMは、特にWindowsから移ってきた初心者に
とって下手なWindowsソフトのインストールよりも恐怖感が強いのではないだろうか。
Windowsではプログラムの実行ファイルや設定ファイル、DLLなどが(VB等のラン
タイムやシステム周りのプログラム、或いはオフィス系アプリケーションでない限り)
大概プログラム専用のディレクトリにまとめられる。特にフリーソフトやシェアウェア
などはプログラムの規模も小さいので大概の場合(レジストリ設定を無視すれば)インストール先のディレクトリを削除してしまえばアンインストールも完了である。
ところがLinuxはそうはいかない。実行ファイルの置き場所は/bin, /usr/bin, /usr/sbin,/usr/local/bin,のどこかであるか、はたまたその中の更にプログラム専用のディレクトリのbin内か。WindowsでDLLにあたるモジュールもどこに何があるやら・・・。設定ファイルは?等々・・・分散してしまっているのだ。
これが初心者にとってRPMの最大の恐怖となる。インストール先がわからないのだ。これは恐ろしい。「ファイル検索のfind使えば良い。」とおっしゃられる方もいるだろうが、思い出してほしい。初心者にとってはfindコマンドの使い方、或いはfindコマンドの存在さえも知らない場合があると言うことを。これは別に罪ではないが、初心者にとっては狂おしいほど困った状況である。
実はこれらはきちんと箱に入ったパッケージを買ってしまえばあまり出会うことは無い。というのも、そう言う場合大抵初心者向けに基本コマンドを網羅し、主要アプリケーションについて結構細かく解説してくれたマニュアルが付属してくるからだ。問題は雑誌の付録、或いはCDROM付き入門書などのFTP版のディストリビューションをインストールした初心者である。自分もその一人だけど。とにかく、この場合もっとも「RPM恐怖症」に陥りやすい。こればっかりはどうしようもなく、一種の通過儀礼と考えてほしい。
長々と愚痴ってきたが、とにかく以下に示すコマンドを知っていれば随分とRPMに対する恐怖感も薄れるはずだ。
目次に戻る
- 第壱番:或るパッケージに含まれるファイルのリストは?
- 第弐番:或るパッケージに含まれるファイルのリストの詳細は?
- 第参番:インストールのシミュレーションをしてみたい(テストインストール)。
- 第四番:或るファイルが含まれているパッケージは?
- 第伍番:まだインストールされていないパッケージに含まれるファイルのリストは?
第壱番:或るパッケージに含まれるファイルのリストは?
「本題」に戻る
rpm -qil <package_name>
もしも一画面に収まりきらなかったら、
rpm -qil <package_name> | less
rpm -qil <package_name> > <output.txt>
等とします。lessで、或いはテキストファイルに落として閲覧できます。
例:rpm -qil hogehoge-1.2.3-4
第弐番:或るパッケージに含まれるファイルのリストの詳細は?
「本題」に戻る
第壱番の応用です。以下のコマンドが便利です。
rpm -qil --provides -R <package_name>
rpm -qils --provides -R <package_name>
二つとも、パッケージの機能(--provides)と依存しているパッケージ名(-R)も
含めて出力してくれます。
「s」オプションを付けると、パッケージに含まれるファイルの状態を表示します。
なお、このオプションを付けると状態が「通常」など日本語表示されて出力される
場合がありますのでkonかkterm, rxvtなど日本語表示ができる端末で行ったほう
が良いでしょう。
第参番:インストールのシミュレーションをしてみたい(テストインストール)。
「本題」に戻る
rpm -ivv --test <package_name>
vvオプションで進行状況の詳細表示。--testでファイルコピーの過程が
表示されます。実際にファイルをコピーするわけではありません。
rpm -ivv --test --verify <package_name>
--verifyオプションでインストールの状況を検証します。
最初の内は、まずこれでシミュレーションを行い安心感を得てから本番に
移っても良いでしょう。
例:rpm -ivv --test --verify /mnt/cdrom/rpm_pkgs/hogehoge.1.2.3-4.i386.rpm
第四番:或るファイルが含まれているパッケージは?
「本題」に戻る
恐らくこれも需要が大きいと思われます。例えば/usr/sbin/hogehogeというファイルはどのパッケージに含まれているのか知るには-fオプションを使います。
rpm -qf /usr/sbin/hogehoge
例:rpm -qf /sbin/ifconfig
第伍番:まだインストールされていないパッケージに含まれるファイルのリストは?
「本題」に戻る
これもよく使います。-pオプションをくっつけて、
rpm -qpl <pakckage_file_name> | less
とします。lessは単にリスト表示が長いのでくっつけました。
例:rpm -qpl /mnt/cdrom/rpm_pkgs/hogehoge-1.2.3-4.i686.rpm
ここでpackage_file_nameとあるのは、パッケージファイル名を指します。
一般にRPMパッケージはhogehoge.version.i386.rpmなどというファイル名になっており、これがすなわち
パッケージファイル名です。ではパッケージ名(package_name)とは何かというと、
インストールされた後、RPMシステムに登録される名前で.i386.rpmを削ったhogehoge.versionと
なるものが殆どです。実際rpm -qaで出てくるパッケージ名のリストには、.i386.rpmとかいうのは
くっついていません。
i386とは何かというと、使えるCPUの種類を示します。i*86とかくれば、大概Intel系列になります。
ppcだとPowerPC、sparcだとSPARC系列のCPUでしか使えません。
おまけ(依存関係無視付き定番コマンド)
・インストール
rpm -ihv --nodeps aaa.rpm
・アップグレード
rpm -U --nodeps aaa.rpm
・削除
rpm -e --nodeps aaa.rpm
参考資料
「Linux各種設定x活用徹底ガイド」海上忍 技術評論社
非常に役に立つ本です。これが一冊有るだけで初心者にとっては随分な安心感を得られるでしょう。
目次に戻る
ふー・・・。実際初心者にとってはRPMコマンドなんて「開けゴマ」的なものですから、恐怖感を覚えても仕方ないと思われます。ですが、以上のコマンドを知っておけばだいぶ気分的に楽になるかな、と。
あと、rpm -qfオプションはファイル名をフルパスで入力する必要があることに注意してください。たとえば、「hoge_binっていうコマンドはどのRPMかな?」と知るとき、
$ rpm -qf hoge_bin
とやっても駄目です。こういったときはあらかじめ
$ whereis hoge_bin
なり、
$ which hoge_bin
なりして、フルパスを入手してから(例:/usb/bin/hoge_bin)、
$ rpm -qf /usr/bin/hoge_bin
としてください。
RPMのぞくとおもしろいですよー。なんか、ライブラリしか入っていないパッケージがあったり。困ったときにドキュメントを調べるのにも役立つし(ほとんどの主要RPMは/usr/share/docあたりに簡便ではあるがHTMLやREADMEなどのドキュメントをつっこんでくれる。あとはrpm -qilで詳しい場所を調べるだけ。)。
特にwhereisとrpm -qf, rpm -qilの組み合わせは、種々の問題解決にも非常に助けになりますので。ぜひいろいろ遊んでRPMを楽しんであげてください。
え?debはどうなったか?・・・僕ー、Debianユーザーじゃないんでー・・・(でもいつかは入れてみたい)。
2002/10/22
目次に戻る
トップぺージ>>>「いろいろ」目次