Debian パッケージのフォーマットは古くからのコマンド ar、tar、gzip (xz や bzip2 の場合も) を備える Unix システムで内容を展開できるようにデザインされました。この一見些細な特徴は可搬性と障害復旧を考えると重要です。
例えば、誤って dpkg プログラムを削除したとしましょう、こうなると Debian パッケージをインストールできなくなります。dpkg は Debian パッケージなので、もはやシステムを回復することは不可能のように見えます...幸いなことに、パッケージの構成を知っていれば、dpkg パッケージの .deb ファイルをダウンロードし、手作業でパッケージをインストールできます (「TOOLS」傍注参照)。もし不幸にも、ar、tar、gzip/xz/bzip2 のうち 1 つでも無かったら、足りないプログラムを別のシステムからコピーするだけで十分です(其々のプログラムは、依存関係が無く、完全に独立して動くため、単純にコピーすれば十分です)。
.deb ファイルの内容を見るには:
$ ar t dpkg_1.16.10_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar x dpkg_1.16.10_i386.deb
$ ls
control.tar.gz data.tar.gz debian-binary dpkg_1.16.10_i386.deb
$ tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/updates/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/info/
./var/lib/dpkg/parts/
./usr/
./usr/share/
./usr/share/locale/
./usr/share/locale/sv/
./usr/share/locale/sv/LC_MESSAGES/
./usr/share/locale/sv/LC_MESSAGES/dpkg.mo
./usr/share/locale/it/
$ tar tzf control.tar.gz
./
./conffiles
./preinst
./md5sums
./control
./postrm
./prerm
./postinst
$ cat debian-binary
2.0
御覧の通り、Debian パッケージの ar アーカイブは 3 つのファイルから成り立っています:
debian-binary. This is a text file which simply indicates the version of the .deb file used (in 2013: version 2.0).
control.tar.gz。このアーカイブファイルには、パッケージの名前やバージョンなど、利用可能な全てのメタ情報が含まれています。このメタ情報の一部と、例えば、マシンにインストールされているパッケージのリストを照らし合わせて、パッケージ管理ツールはパッケージをインストールまたはアンインストールが可能かを決定します。
data.tar.gz。このアーカイブには、パッケージから展開される全てのファイルが含まれています; 実行ファイル、文書など全てが保存されています。一部のパッケージでは異なる圧縮フォーマットが使われているかもしれません、このような場合、ファイルは別の名前がつけられています(bzip2 の場合 data.tar.bz2、XZ の場合 data.tar.xz、LZMA の場合 data.tar.lzma)。