Debian 套件格式設計成任何 Unix 系統均可用傳統的指令 ar、tar、與 gzip (有時是 xz 或 bzip2) 提取其內容。看起來有點挑剔的屬性卻是跨平台與災難復原的必需品。
舉個例子,您誤刪
dpkg 程式,不能安裝 Debian 套件了。
dpkg 本身就是一個 Debian 套件,好像就此和系統再見了... 幸運的,您知道套件的格式並可下載
.deb 檔案來自
dpkg 套件且以手動方式安裝它 (見專欄
工具 dpkg、APT 與 ar)。然而不幸的是
ar、
tar 或
gzip/
xz/
bzip2 等程式都不見了,必須從別的系統複製該程式 (這些都是自主存在的,沒有相依性,祗需複製就能用)。若碰到更不像話的情況,以上作為都行不通 (遺失更深層的程式庫?),則應試試靜態版的
busybox (於
busybox-static 套件內),它更為自足,還有諸如
busybox ar、
busybox tar 與
busybox gunzip 等次指令。
查看 .deb 檔案的內容:
$ ar t dpkg_1.17.23_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar x dpkg_1.17.23_amd64.deb
$ ls
control.tar.gz data.tar.gz debian-binary dpkg_1.17.23_amd64.deb
$ tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/parts/
./var/lib/dpkg/info/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/updates/
./etc/
./etc/logrotate.d/
./etc/logrotate.d/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg.d/
./etc/dpkg/dpkg.cfg
./etc/alternatives/
$ tar tzf control.tar.gz
./
./conffiles
./postinst
./md5sums
./prerm
./preinst
./control
./postrm
$ cat debian-binary
2.0
如您所見,Debian 套件的 ar 包括以下三個檔案:
debian-binary。這是指明 .deb 檔案版本的純文字檔 (在 2015: version 2.0)。
control.tar.gz。這個檔案包括軟體套件的名稱與版本等中介資料。安裝與移除時,套件管理工具可以修正部份的中介資料,以配合機器內已有的套件清單。
data.tar.gz。此檔案包括套件所有可以解壓縮的內容;包括可執行檔、文件等。使用其他壓縮格式的套件,可能有不同的名字 (data.tar.bz2 是 bzip2、data.tar.xz 是 XZ)。