deb(5) Debian バイナリパッケージ形式

書式

filename.deb

説明

.deb フォーマットは Debian バイナリパッケージのファイル形式であり、dpkg 0.93.76 以降で扱うことができる。dpkg 1.2.0 以降のすべてのバージョンと i386/ELF 1.1.1elf 以降のすべてのバージョンでは、デフォルトでこの形式が作成される。

このマニュアルで説明する形式は Debian 0.93 から使用されている。古い形式の詳細については deb-old(5) を参照のこと。

フォーマット

このファイルは !<arch> というマジックナンバーを持つ ar アーカイブである。一般的な ar アーカイブ形式のみがサポートされているため長いファイル名はサポートされていないが、ファイル名が (本来許可されている 16 文字のうち) 15 文字以内の場合、末尾にスラッシュを付けることができる。ファイルサイズは、ASCII の 10 進数で 10 桁以内となっており、約 9536.74 MiB のメンバファイルを扱うことができる。

現在使用できる tar アーカイブの形式は、old-style (v7) 形式、POSIX 以前の ustar 形式、GNU 形式のサブセット (新しい形式の長いパス名とリンク名のみ。dpkg 1.4.1.17 以降でサポート)、POSIX ustar 形式 (長いパス名については dpkg 1.15.0 以降でサポート) である。認識されないtar の typeflag はエラーとなる。

アーカイブの 1 番目のファイルは debian-binary である。このファイルは、改行で区切られた何行かからなるが、本マニュアルページが書かれた時点では、形式のバージョン番号である 2.0 が書かれた 1 行のみが存在している。新しい形式のアーカイブを読み込むプログラムは、マイナーバージョン番号の増加や、新しい行の追加に対応すべきである。その際には、これらを無視すること。

メジャーバージョン番号が変更されている場合は、互換性のない変更がされているとみなし、プログラムは停止すべきである。メジャーバージョンが変更されていない場合は、以下で説明するように、アーカイブに予期しないファイルが含まれていない限り (アーカイブ末尾に含まれる場合を除く)、プログラムは安全に実行を継続できる必要がある。

2 番目の必須ファイルは control.tar.gz である。このファイルは、パッケージ制御情報が格納されたテキストファイルからなる gzip で圧縮された tar アーカイブである。control ファイル (制御情報ファイル) は必須であり、中心となる制御情報が含まれる。アーカイブには、カレントディレクトリを意味する `.' のエントリがあってもよい。

3 番目となる最後の必須ファイルは data.tar である。このファイルは、ファイルシステムツリーが格納された tar アーカイブである。ファイルは、gzip (拡張子 .gz)、xz (拡張子 .xz 、dpkg 1.15.6以降でサポート)、bzip2 (拡張子 .bz2、dpkg 1.10.24以降でサポート)、lzma (拡張子 .lzma、dpkg 1.13.25 以降でサポート) により圧縮される場合もあるが、非圧縮のまま (dpkg 1.10.24 以降でサポート) の場合もある。

これらのファイルはこの通りの順序でアーカイブされていなければならない。現在の実装では、data.tar より後に追加されているファイルを無視すべきである。将来的に追加のファイルが定義された場合は、(やむを得ない場合を除き) これら 3 つのファイルより後にアーカイブされることになるだろう。data.tar の前に何らかのファイルを追加する必要が発生した際に、それらを古いプログラムから安全に無視させるには、アンダースコア `_' から始まる名前を付ければよい。

安全に無視させることのできない、アンダースコア以外の文字で始まる名前のファイルが data.tar の前に追加されるかも知れないが、その場合は、(おそらく) メジャーバージョンアップとなるだろう。

翻訳者

高橋 基信 <[email protected]>. 喜瀬 浩 <[email protected]>. 関戸 幸一 <[email protected]>. 鍋谷 栄展 <[email protected]>. 倉澤 望 <[email protected]>. 石川 睦 <[email protected]>. 鵜飼 文敏 <[email protected]>. 中野 武雄 <[email protected]>.

翻訳校正

Debian JP Documentation ML <[email protected]>.