debian 文件 [.deb] 解压器支持什么压缩?

Gri*_*riP 4 dpkg deb tar

我知道典型的 .deb 文件包含三个文件:

debian-binary
control.tar.gz
data.tar.gz
Run Code Online (Sandbox Code Playgroud)

有些是 xz 压缩而不是 gzip (control.tar.xz、data.tar.xz)。

Debian 文件支持哪些其他压缩?debian 安装程序如何知道使用哪种解压?

如果我想添加对另一种压缩的支持(例如,zopfli - https://github.com/google/zopfli)。是否有 debian 安装程序的源代码可用,我可以修改它以使此添加成为可能?

mur*_*uru 6

这篇博文来看,它似乎dpkg-deb可以处理压缩。从14.04man dpkg-deb开始:

-Zcompress-type
      Specify  which  compression type to use when building a package.
      Allowed values are gzip, xz, bzip2, lzma, and none  (default  is
      xz).
Run Code Online (Sandbox Code Playgroud)

15.10中:

-Zcompress-type
      Specify which compression type to use when building  a  package.
      Allowed   values   are  gzip,  xz  (since  dpkg  1.15.6),  bzip2
      (deprecated), lzma (since dpkg  1.14.0;  deprecated),  and  none
      (default is xz).
Run Code Online (Sandbox Code Playgroud)

22.04中,删除并lzma添加了:bzip2zstd

-Zcompress-type
   Specify which compression type to use when building a package.  Allowed values are
   gzip, xz (since dpkg 1.15.6), zstd (since dpkg 1.19.0.5ubuntu2) and none (default is
   zstd).
Run Code Online (Sandbox Code Playgroud)

源代码可以在Debian Aliothdpkg浏览。据我所知,它也在某些地方使用,如果不支持 zopfli,请准备好向GNU tar添加对 zopfli 的支持。tartar