書式
dpkg-deb [option...] command説明
dpkg-deb は、Debian アーカイブの作成、展開、情報の表示を行う。パッケージをシステムにインストールしたり削除したりするには dpkg を使うこと。
また、dpkg-deb に引き渡したいオプションを指定して dpkg を実行することで、dpkg-deb を実行することもできる。dpkg は、dpkg-deb 用のオプションであると判断すると、 dpkg-deb を起動する。
コマンド
- -b, --build directory [archive|directory]
-
directory 以下のファイルシステムツリーから debian アーカイブを作成する。 directory には、control
ファイルなどの制御情報ファイルのある DEBIAN サブディレクトリが必ず存在しなければならない。 DEBIAN
ディレクトリはバイナリパッケージのファイルシステム・アーカイブには含まれない。代わりに DEBIAN
ディレクトリ以下にあったファイルはバイナリパッケージの制御情報エリアに置かれる。
--nocheck を指定しないかぎり、 dpkg-deb は DEBIAN/control を読み込んで解析する。 dpkg-deb は、文法エラーなどの問題のチェックを行い、ビルド中のバイナリパッケージ名を表示する。 dpkg-deb は、 DEBIAN 制御情報ディレクトリにある、メンテナスクリプトなどのファイルのパーミッションもチェックする。
archive が指定されない場合、 dpkg-deb はパッケージを directory.deb という名前で作成する。
作成するアーカイブが既に存在している場合は、上書きする。
2 番目の引数がディレクトリの場合、 dpkg-deb は package_version_arch.deb または package_version.deb (パッケージ制御ファイルに Architecture フィールドがない場合) というファイルを作成する。ファイル名の代わりにディレクトリを指定するときには、--nocheck オプションを使用してはいけない (dpkg-deb は、使用するファイル名を確認するために、パッケージ制御ファイルを読み込んで解析する必要があるため)。
- -I, --info archive [control-file-name...]
-
バイナリパッケージアーカイブの情報を表示する。
control-file-name が指定されていない場合は、制御ファイルの一覧と、パッケージの概要を表示する。
control-file-name が指定された場合、 dpkg-deb は指定された順でファイルの内容を表示する。指定したファイルの一部が存在しない場合、存在しないファイル各々について、標準エラー出力にエラーメッセージを表示し、そして終了ステータス 2 で終了する。
- -W, --show archive
- バイナリパッケージアーカイブの情報を --showformat 引数で指定した形式で表示する。デフォルトの形式では、パッケージ名とバージョンがタブで区切られて 1 行に表示される。
- -f, --field archive [control-field-name...]
-
バイナリパッケージアーカイブから制御ファイル情報を取り出す。
control-file-field が指定されていない場合、control ファイルのすべての内容が表示される。
control-file-field が指定されている場合、dpkg-deb は指定されたフィールドの内容を制御ファイルに記載されている順に表示する。control-file-field が複数指定された場合、 dpkg-deb は、各々の前にフィールド名 (およびコロンとスペース) を表示する。
指定したフィールドがみつからない場合でもエラーにはならない。
- -c, --contents archive
- パッケージアーカイブに含まれるファイルシステムツリーの内容を表示する。現在は、tar の冗長表示 (-v オプション) の形式で表示する。
- -x, --extract archive directory
-
パッケージアーカイブから、ファイルシステムツリーを指定したディレクトリに展開する。
ルートディレクトリにパッケージを展開しても、正しいインストールにはならないことに注意 ! パッケージのインストールには dpkg を使うこと。
directory (親ディレクトリは含まない) は必要に応じて作成される。
- -X, --vextract archive directory
- --extract (-x) に --verbose (-v) を付加したオプションと同様だが、実際にファイルを展開して一覧を表示する。
- -R, --raw-extract archive directory
-
パッケージアーカイブから、ファイルシステムツリーを指定したディレクトリに展開し、制御情報ファイルを、DEBIAN サブディレクトリに展開する。
指定したディレクトリ (親ディレクトリは含まない) は必要に応じて作成される。
- --fsys-tarfile archive
- バイナリパッケージからファイルシステムツリーを展開し、標準出力に tar 形式で出力する。 tar(1) と組み合わせて使用することで、特定のファイルをパッケージアーカイブから取り出すことができる。入力のアーカイブは、常に 1 つずつ処理される。
- -e, --control archive [directory]
-
パッケージアーカイブから制御情報ファイルを指定したディレクトリに展開する。
ディレクトリが指定されない場合、カレントディレクトリの DEBIAN サブディレクトリに展開する。
指定したディレクトリ (親ディレクトリは含まない) は必要に応じて作成される。
- -?, --help
- 利用方法を表示して終了する。
- --version
- バージョン情報を表示して終了する。
オプション
- --showformat=format
-
このオプションは、--show の出力の書式を指定するものである。書式は、一覧表示される各パッケージの出力を制御する文字列である。
文字列は "${field-name}" 形式であらゆる status フィールドを参照することができる。有効なフィールドの一覧は、対象のパッケージに -I を使用することで簡単に確認できる。書式オプションの網羅的な解説 (エスケープシーケンスやフィールドでのタブの使い方を含む) は、dpkg-query(1)の --showformat オプションの解説を参照のこと。
このフィールドのデフォルトの書式は "${Package}\t${Version}\n" である。
- -zcompress-level
- パッケージのビルドの際に、圧縮を行うバックエンドのプログラムに引き渡す圧縮レベルを指定する (デフォルトは、gzip および bzip2 の場合 9、xz および lzma の場合 6)。指定可能な値は 0-9 であり、gzip の場合 0 は非圧縮に対応するが、bzip2 の場合 0 は 1 とみなされる。dpkg 1.16.2 より前では、すべての圧縮プログラムにおいて、レベル 0 は非圧縮と等価となる。
- -Scompress-strategy
- パッケージのビルドの際に、圧縮を行うバックエンドのプログラムに引き渡す圧縮ストラテジーを指定する (dpkg 1.16.2 以降)。指定可能な値は、none (dpkg 1.16.4 以降) と、xz 用の extreme である。
- -Zcompress-type
- パッケージのビルドの際に使用する圧縮タイプを指定する。指定可能な値は gzip, xz, bzip2, lzma, none (デフォルトは gzip) である。
- --new
- dpkg-deb に `新しい' 形式のアーカイブを構築させる。これはデフォルトの動作である。
- --old
- dpkg-deb に `古い' 形式のアーカイブを構築させる。この古いアーカイブ形式は、新しい形式よりも Debian 以外のツールで処理することが難しく、現在は廃止されている。このオプションは、i386 の a.out 形式のみを対象としてリリースされた、バージョン 0.93.76 (1995 年 9 月) 以前の dpkg で処理するためのパッケージをビルドする時のみ使用すること。
- --nocheck
- dpkg-deb --build の際に通常実施される、アーカイブの内容のチェックを実施しない。これにより、アーカイブの内容に問題があっても、アーカイブをビルドすることができる。
- -v, --verbose
- 詳細な出力を有効にする。現在のところ、これは --extract に --vextract と同様の挙動をさせる場合のみ有効である。
- -D, --debug
- デバッグ出力を有効にする。これはあまり面白いものではない。
環境変数
- TMPDIR
- TMPDIR が設定されている場合、dpkg-deb は、一時的なファイルやディレクトリを作成するディレクトリとして使用する。
バグ
dpkg-deb -I package1.deb package2.deb は適切に動作しない。.deb ファイルには認証という概念がなく、単純なチェックサムすらもない (APT のような高レイヤのツールは、指定されたリポジトリから情報を収集することで .deb パッケージの認証をサポートしている。また大半のパッケージは近年debian/rules によって生成される md5sum 制御ファイルを提供している。しかし、これらは低レイヤのツールが直接的にサポートしているものではない。
dpkg-deb でソフトウェアをインストールしようとしてはいけない!すべてのファイルの適切なパスへインストール、パッケージのスクリプトの実行、ステータスや内容の記録を確実に実行するために、必ず dpkg を使うこと。