はっきり言って、rpm は使い方が分からない。
だって、もともとが Slackware な人間なんだもん。
パッケージ管理なんて、メンドクサイな、って思っちゃうし、
いままで覚える必要もなかったし。
しかし、そうも言ってられない状態になってしまった。
なにせメイン環境の Vine Linux が RedHat ベースで rpm をガンガン使ってるし、
さらに輪をかけて apt なんてもんも入って来たしで、
いいかげん覚える事にするか。
幸い? Linux magazine で短期の特集を組んでいるし。
ってな事で、Linux magazine の内容を確認しながらこのページを作っていく事にした。
rpm の主なオプション
-q パッケージの確認 -i/-U/-F パッケージのインストール -e パッケージのアンインストール -V パッケージの検証
パッケージの確認
パッケージ( rpm, srpm ファイル )、またはファイルについて問い合わせ(query)を行う。
-q の後に、欲しい情報のタイプについてのスイッチを付けて使用。
-a rpm -qa ( all ) インストールされているパッケージの一覧を表示を表示。
アルファベット順にソートしてくれないので sort を併用すると楽。-i rpm -qi hoge ( informatin ) インストールされているパッケージの概要を表示。
バージョン名、拡張子は付ける必要はない。-l rpm -ql hoge ( list ) インストールされているパッケージの、インストールされているファイルの一覧を表示。
-v をつけると、ls -l と同様の詳細な表示をしてくれる。
バージョン名、拡張子は付ける必要はない。-p rpm -qp hoge-1.2.rpm ( pre install ? ) パッケージ自身の情報を表示。
インストールしていない rpm ファイルに対して使える。
-i(information),-l(list) を併用可能。-f rpm -qf hoge パッケージの逆引き。
インストール済の指定ファイルがどの rpm パッケージに入っていたかを表示。
パッケージのインストール
rpm,srpm ファイルのインストールを行うときに使用。
-i, -U ,-F の3種類があって、それぞれインストールの仕方に違いがある。
-i 新規インストールのみ。
同名のパッケージがインストールされている時は実行されない。-U 既存パッケージのアップグレード、及び、新規インストールの両方を行う。 -F アップグレードのみを行い、新規インストールは行わない。
また、状態を示すスイッチもあるので、併用するとグー。
-v パッケージ名の表示 -h インストールの進行状況をシャープ(#)で表示
例)
$ rpm -ivh hoge-1.2vl3.rpm
> hoge ##################################
その他の特殊なオプション
インストールオプションに続けて指定して、使用。例)
--nodeps 依存関係を無視してインストール、アンインストールを実行。
当然、依存関係は壊れるし、まともに動かない可能性、大。--oldpackage 古いバージョンのパッケージをインストール。
新しいパッケージとの併用が可能。--replacepkgs 同一のバージョン番号のパッケージをインストール。
何かの都合でファイル本体が消えてしまった場合に使用。--replacefiles 他のファイルパッケージとファイルがぶつかってしまう場合には、 置換してかまわない事を指定。 --force --oldpackage, --replacepkgs, --replacefiles, を同時に指定したことになる。 --test 実際にはインストール、アンインストールはせず、確認を行う。
シュミレーション。
$ rpm -ivh --nodeps hoge-1.2vl3.rpm
> hoge ##################################
パッケージのアンインストール
$ rpm -e hoge
パッケージ名のみの指定で可。
バージョン名などは不用。
--test, --nodeps も指定可能。
パッケージの検証
インストールしたものと、パッケージの内容を照らし会わせる。
$ rpm -V package
> S.5....T c /home/hogehoge の場合、
S サイズがインストールした時と違う
5 MD5 の値が違う
T 日付が違う
c 設定ファイルであることを示す
普通は検証結果に差は出ないんだけど、
クラッキングされた場合なんかは出るらしい。
最近インストールしたRPMパッケージを調べる
$ rpm -qa --last | head
参照