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
)。