我知道一个典型的 .deb 文件包含三个文件:
debian-binary
control.tar.gz
data.tar.gz
并且有些是 xz 压缩而不是 gzip 压缩(control.tar.xz、data.tar.xz)。
Debian 文件还支持哪些其他压缩?Debian 安装程序如何知道使用哪种解压缩?
如果我想添加对另一种压缩的支持(例如,zopfli -https://github.com/google/zopfli)。是否有可用的 Debian 安装程序源代码,我可以修改它来实现此功能?
答案1
从这篇博文,它似乎处理dpkg-deb
压缩。从man dpkg-deb
14.04:
-Zcompress-type
Specify which compression type to use when building a package.
Allowed values are gzip, xz, bzip2, lzma, and none (default is
xz).
在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).
并且在22.04,并lzma
去掉bzip2
了并zstd
添加了:
-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).
源代码dpkg
可以浏览Debian Alioth据我所知,它也使用了tar
一些地方,如果tar
不支持 zopfli,请准备添加对 zopfli 的支持GNU tar也一样。