dpkg は Debian の .deb の拡張子を持ったパッケージをインストール、削除し、そしてパッケージの情報を得るために使われる低水準のツールです。Debian のパッケージの仕組みを理解し、ゆくゆくは自分で deb パッケージを作れるようにするには dpkg コマンドの理解は必須であると考え、コマンドの主な内容をまとめてみました。
ところが…、いろいろなサイトを調べて見ると、いわゆる Debian の man ページに記載されていない内容があり、少々混乱しています。ことによったら Ubuntu などによる拡張があるのかもしれないと思いましたが、当の Debian 上の dpkg コマンドでも使えるアクションだったりもします。今のところ Debian 系のディストリビューションに関して未熟なためなのか、単なるバージョンの違いかどうかを特定できなかったので、ひとまず必要最低限の機能だと思われるものだけまとめてみました。
Synopsis
dpkg [option...] action
Action
主なアクションは以下のとおりです。
| Action | 説 明 | |
|---|---|---|
| -i, --install package-file... | パッケージ package-file... をインストールします。パッケージのインストールは次のステップで行われます。 | |
| 1. | 新しいパッケージのコントロールファイルを抽出します。 | |
| 2. | 異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの prerm スクリプトが実行されます。 | |
| 3. | パッケージで指定されていれば、preinst スクリプトを実行します。 | |
| 4. | 新しいファイルを展開します。同時に古いファイルのバックアップもします。 | |
| 5. | 新しいインストールの前に異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの postrm スクリプトが実行されます。 | |
| 6. | パッケージを設定します。詳細は --configure を参照。 | |
| --unpack package-file... | パッケージを展開します。 | |
| --configure package...|-a|--pending | 展開されているパッケージ package-file... を設定します。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、すべての展開されていないパッケージあるいはまだ設定されていないパッケージが設定されます。 | |
| -r, --remove package...|-a|--pending | パッケージ package-file... をアンインストールします。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、展開されていないすべてのパッケージあるいは /var/lib/dpkg/status で削除マークがつけられているものをアンインストールされます。パッケージのアンインストールは次のステップで行われます。 | |
| 1. | prerm スクリプトを実行。 | |
| 2. | インストールされたファイルを削除。 | |
| 3. | postrm スクリプトを実行。 | |
| -?, --help | 簡単なヘルプメッセージを表示します。 | |
| --version | dkpg のバージョン情報を表示します。 | |
Options
主なオプションをまとめました。
| オプション | 説 明 |
|---|---|
| -B, --auto-deconfigure | 削除するパッケージに依存しているパッケージの設定を自動的に取り消します。 |
| --no-act, --dry-run, --simulate | 実行されるべき処理をすべて行うが、いかなる変更も書き込まない。これは一切変更を行わずに、指定したアクションによって何が起こるかを確認する際に用いられます。 |
| -R, --recursive | 指定したディレクトリを再帰的に検索し、*.deb というパターンにマッチする通常ファイルすべてに処理を行います。 |
| -G | インストール済のパッケージのバージョンの方が新しければ、パッケージをインストールしません。 |
| -E, --skip-same-version | すでに同じバージョンのパッケージがインストールされている場合、パッケージをインストールしません。 |
| --no-debsig | パッケージの署名を確認しません。 |
参考サイト
にほんブログ村


0 件のコメント:
コメントを投稿