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