RPM(8) | System Manager's Manual | RPM(8) |
rpm - RPM パッケージマネージャ
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
rpm --import PUBKEY ...
rpm {-K|--checksig} [--nogpg]
[--nopgp] [--nomd5]
PACKAGE_FILE ...
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches]
[--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...
rpm {--initdb|--rebuilddb}
rpm {--addsign|--resign} PACKAGE_FILE ...
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} PACKAGE_NAME ...
[PACKAGE_NAME] [-a,--all]
[-f,--file FILE]
[-g,--group GROUP]
[-p,--package PACKAGE_FILE]
[--hdrid SHA1] [--pkgid
MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggerdby
PACKAGE_NAME]
[--whatprovies CAPABILITY] [--whatrequires
CAPABILITY]
[--changelog] [-c,--configfiles]
[-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last]
[-l,--list]
[--provides] [--qf,--queryformat
QUERYFMT] [-R,--requires]
[--scripts] [-s,--state]
[--triggers,--triggerscripts]
[--nodeps] [--nofiles] [--noscripts]
[--nodigest]
[--nosignature] [--nolinkto] [--nomd5] [--nosize]
[--nouser] [--nogroup] [--nomtime] [--nomode]
[--nordev]
[--aid] [--allfiles] [--badreloc]
[--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize]
[--ignorearch] [--ignoreos] [--includedocs]
[--justdb]
[--nodeps] [--nodigest] [--nosignature]
[--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix
NEWPATH]
[--relocate
OLDPATH=NEWPATH]
[--replacefiles] [--replacepkgs] [--test]
rpm は強力な パッケージマネージャ であり、個々のソフトウェアパッケージを ビルド・インストール・検索・検査・更新・削除するのに使うことができる。 パッケージ はファイルのアーカイブと、アーカイブされたファイルの インストール・アンインストールに使われるメタデータからなる。 メタデータは補助スクリプト、ファイル属性、 そしてパッケージの説明に関する情報からなる。 パッケージ には 2 種類ある。 インストールするためのソフトウェアをカプセル化するのに使われるバイナリ パッケージと、バイナリパッケージを生成するのに必要なレシピとソースコード からなるソースパッケージである。
以下の基本モードのいずれかが選択されなければならない: 検索、 検査、 署名の検査、 インストール/アップグレード/更新、 アンインストール、 データベースの初期化、 データベースの再作成、 再署名、 署名の追加、 所有者/グループの設定、 検索タグの表示、 設定の表示。
次のオプションはすべてのモードで使用することができる。
rpm をインストールするコマンドの一般的な形式は:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
これは新しいパッケージをインストールする。
アップグレードするコマンドの一般的な形式は:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
これは現在インストールされているパッケージを新しいバージョンに アップグレードするか、パッケージをインストールする。 新しいパッケージがインストールされたら他のすべてのバージョンのものが 削除されることを除けば、インストールと同じである。
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
これは以前のバージョンが、現在インストールされている場合にのみ パッケージを更新する。
PACKAGE_FILE には ftp または http の URL を指定することが可能で、その場合にはパッケージをインストールする前に ダウンロードする。 rpm 内部での ftp と http のサポートについての情報は FTP/HTTP オプション の節を参照のこと。
--nopre --nopost --nopreun --nopostun
に等しく、対応する %pre, %post, %preun, %postun スクリプト(群)を実行しない。
--notriggerin --notriggerun --notriggerpostun
に等しく、対応する %triggerin, %triggerun, %triggerpostun スクリプト(群)を実行しない。
rpm を削除するコマンドの一般的な形式は:
rpm {-e|--erase} [--allmatches]
[--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...
以下のオプションが使用できる:
--nopreun --nopostun
に等しく、対応する %preun と %postun スクリプト(群)を実行しない。
--notriggerun --notriggerpostun
に等しく、対応する %triggerun と %triggerpostun スクリプト(群)を実行しない。
rpm 検索の一般的な形式は:
rpm {-q|--query} [select-options] [query-options]
表示されるパッケージ情報の書式を指定することができる。 そうするためには、
--qf|--queryformat QUERYFMT
オプションを使う。 QUERYFMT が書式文字列である。検索の書式は、標準的な printf(3) の書式の修正である。書式は静的な文字列 (改行・タブ・その他の特殊文字の、C 言語の標準的な文字エスケープを含む)と、 printf(3) 型の書式文字列からなる。 しかし rpm は表示する型を既に知っているので、型指定は省略されるべきである。 代わりに {} で囲まれた、表示されるへッダーのタグ名が使用される。 タグ名に大文字/小文字の区別はなく、タグ名の先頭の RPMTAG_ 部分も省略することができる。
以下の :typetag を付加したタグによって、代替の出力書式を要求できる。 現在、以下の種別がサポートされている:
例えば、検索結果のパッケージ名だけを表示したければ、書式文字列として %{NAME} を使えばよい。 2 カラムでパッケージ名とディストリビューション情報を表示したければ %-30{NAME}%{DISTRIBUTUIN} を使えばよい。 (訳注: 端末によっては末尾に \n が必要である)。 引数 --querytags をつけて rpm を実行すれば、使用できるタグすべてを表示することができる。
検索のためのオプションは2種類に分けられる。 パッケージの選択と、(訳注: 表示するための)情報の選択である。
パス サイズ 修正時刻 md5ダイジェスト モード \ 所有者 グループ 設定ファイル 文書ファイル \ ルートデバイス シンボリックリンク
rpm を検査するコマンドの一般的な形式は:
rpm {-V|--verify} [select-options] [verify-options]
パッケージの検査では、 パッケージ内のインストールされたファイルに関する情報と、 rpm データベースに格納されているパッケージのメタデータから得られた ファイルに関する情報とを比較する。 とりわけ、ファイルのサイズ、MD5 チェックサム、許可属性、タイプ、 所有者、グループを比較する。 インストール時に --excludedocs オプションを使ったために除外された文書ファイルのように、 パッケージからインストールされていないファイルは静かに無視される。
パッケージ選択オプションは、パッケージ検索のためのものと (パッケージのリストファイルを引数に指定できることも含め) 一緒である。 その他の、検査モード固有のオプションは:
出力の形式は 9 個の文字と属性マーク、その後ろにファイル名である。 パッケージのへッダーから得られる属性マークは:
各 9 個の文字は、ファイルの属性とデータベースに記録されているその属性の 値との比較の結果を意味している。 一つの . (ピリオド) はテストを通過したこと意味し、一つの ? (クエスチョンマーク) はテストが実施されなかった (すなわち、ファイルパーミッションにより読み込めなかった) ことを意味する。でなかれば、 (記憶を助けるために、ボールド化 (emBoldened) されている)文字は関連する --verify テストに失敗したことを意味する:
rpm の電子書名の一般的な形式は:
rpm --import PUBKEY ...
rpm {-K|--checksig} [--nogpg]
[--nopgp] [--nomd5]
PACKAGE_FILE ...
--checksig オプションは、 パッケージの完全性と出所を確認するために PACKAGE_FILE に含まれるすべてのダイジェスト値と署名をチェックする。 現在ではパッケージが読み込まれたときはいつでも署名が検査される。 --checksig の方はパッケージに付随するすべてのダイジェスト値と署名を 検査するのに有効である。
公開鍵がなければ電子署名の検査はできない。 --import を使えば rpm データベースに ASCII 形式での公開鍵を追加できる。 取り込まれた公開鍵はあるへッダーへと運ばれ、 パッケージ管理のように厳密な鍵リング管理が実行される。 例として、その時点で取り込まれているすべての公開鍵は以下を実行することで 表示できる。
rpm -qa gpg-pubkey*(訳注: 多くの場合 "*" はシェルによってメタ文字として解釈されるので、 実際には rpm -qa "gpg-pubkey*" のようにクォーティングする必要がある)
取り込んだ、特定の公開鍵に関する詳細は検索によって表示することができる。 Red Hat の GPG/DSA 鍵に関する情報は:
rpm -qi gpg-pubkey-db42a60e
最後に、パッケージでそうできるように、取り込んだ公開鍵を削除することができる。 以下は Red Hat の GPG/DSA 鍵を削除する。
rpm -e gpg-pubkey-db42a60e
rpm {--addsign|--resign} PACKAGE_FILE ...
オプション --addsign と --resign の両方とも、与えられた各パッケージ PACKAGE_FILE に対する新たな署名を生成・挿入し、既に存在する署名があれば置き換える。 歴史的な理由により二つのオプションが存在するが、 現在ではその動作に違いはない。
GPG を使ってパッケージに署名するためには、 rpm が GPG を実行するように設定されていなければならず、また、 適切な鍵で鍵リングを探すことができなければならない。 rpm はデフォルトで、 GPG が鍵の環を探すのと同じ規則、すなわち環境変数 $GPGPATH を使用する。 GPG が期待する場所に鍵リングが無い場合には、 使用する GPG 鍵リングの場所を %_gpg_path マクロに設定する必要がある。
過去のバージョンの GPG, PGP, rpm との互換性のために、 V3 OpenPGP 署名パケットのみが設定されなければならない。 DSA と RSA の検査アルゴリズムのどちらも使うことができるが、 DSA の方が好ましい。
作成したパッケージに自分自身で署名できるようにしたければ、 公開鍵と秘密鍵のペアを作成しておくことも必要である (GPG のマニュアルを見ること)。 また、以下の rpm マクロを設定することも必要であろう。
例えば、実行ファイルが /usr/bin/gpg で、鍵リングが /etc/rpm/.gpg にあり、その中のユーザ "John Doe <jdoe@foo.com>" としてパッケージに GPG を使って署名する場合には
%_gpg_path /etc/rpm/.gpg %_gpg_name John Doe <jdoe@foo.com> %_gpgbin /usr/bin/gpg
をマクロの設定ファイルに含めれば良い。 システム全体の設定には /etc/rpm/macros を、ユーザごとの設定には ~/.rpmmacros を使用する。
データベースを再作成するコマンドの一般的な形式は:
rpm {--initdb|--rebuilddb} [-v] [--dbpath
DIRECTORY]
[--root DIRECTORY]
新たなデータベースを作成する場合には --initdb を使い、インストールされているパッケージのへッダーから データベースのインデックスを再作成するには --rebuilddb を使用する。
コマンド
rpm --showrc
は、 rpm が使用するすべてのオプションの値を表示する。 値はファイル rpmrc と macros で設定される。
インターネットからパッケージを検索したりインストールできるようにするために、 rpm は FTP と HTTP のクライアントとして動作することができる。 インストール、アップグレード、検索するパッケージファイルは 以下の ftp または http スタイルの URL で指定することができる。
ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm
もし :PASSWORD の部分が省略された場合には、パスワードが (ユーザ/ホスト名の組合わせごとに)尋ねられる。 ユーザとパスワードの両方が省略された場合には、 anonymous(匿名) ftp が使用される。すべての場合において パッシブ (PASV) ftp 転送が利用される。
ftp URL において、 rpm では次のオプションが可能である。
http URL において、 rpm では次のオプションが可能である。
rpm のビルドモードは、現在では /usr/bin/rpmbuild に含まれる。 過去との互換性は以下の popt によるエイリアスによって提供され、 それはまずまずではあるが完全ではない。 よって popt のエイリアスを使ったビルドモードの互換性は、 rpm から取り除かれつつある。 以前の rpm(8) に記述されていた rpm ビルドモードについてのすべての文書は、 rpmbuld パッケージをインストールし rpmbuild(8) を参照すること。
これからも rpm のコマンドラインから rpmbuild を呼び出したければ、以下の行を /etc/popt に加えればよい。
rpm exec --bp rpmb -bp rpm exec --bc rpmb -bc rpm exec --bi rpmb -bi rpm exec --bl rpmb -bl rpm exec --ba rpmb -ba rpm exec --bb rpmb -bb rpm exec --bs rpmb -bs rpm exec --tp rpmb -tp rpm exec --tc rpmb -tc rpm exec --ti rpmb -ti rpm exec --tl rpmb -tl rpm exec --ta rpmb -ta rpm exec --tb rpmb -tb rpm exec --ts rpmb -ts rpm exec --rebuild rpmb --rebuild rpm exec --recompile rpmb --recompile rpm exec --clean rpmb --clean rpm exec --rmsource rpmb --rmsource rpm exec --rmspec rpmb --rmspec rpm exec --target rpmb --target rpm exec --short-circuit rpmb --short-circuit
/usr/lib/rpm/rpmrc /usr/lib/rpm/<vendor>/rpmrc /etc/rpmrc ~/.rpmrc
/usr/lib/rpm/macros /usr/lib/rpm/<vendor>/macros /etc/rpm/macros ~/.rpmmacros
/var/lib/rpm/Basenames /var/lib/rpm/Conflictname /var/lib/rpm/Dirnames /var/lib/rpm/Filemd5s /var/lib/rpm/Group /var/lib/rpm/Installtid /var/lib/rpm/Name /var/lib/rpm/Packages /var/lib/rpm/Providename /var/lib/rpm/Provideversion /var/lib/rpm/Pubkeys /var/lib/rpm/Removed /var/lib/rpm/Requirename /var/lib/rpm/Requireversion /var/lib/rpm/Sha1header /var/lib/rpm/Sigmd5 /var/lib/rpm/Triggername
/var/tmp/rpm*
popt(3), rpm2cpio(8), rpmbuild(8),
http://www.rpm.org/
Marc Ewing <marc@redhat.com> Jeff Johnson <jbj@redhat.com> Erik Troan <ewt@redhat.com>
09 June 2002 | Red Hat, Inc. |