Debian系统中,dpkg-deb是处理.deb软件包的核心命令行工具,其提取功能可根据需求选择“全部提取”或“选择性提取”。
.deb软件包的文件组成分为两类:
data.tar.xz或data.tar.gz压缩包内);control.tar.gz压缩包内,通常存放在DEBIAN目录下)。若需提取.deb包中的全部内容(常规文件+控制文件),需使用-R(或--root-owner)选项,该选项会递归提取所有文件并保留原始目录结构(包括DEBIAN目录)。
示例命令:
dpkg-deb -R package.deb /path/to/destination
执行后,/path/to/destination目录将包含.deb包中的所有文件(如/usr/bin/app、/etc/app/config.conf)及DEBIAN控制目录。
若使用-x(或--extract)选项,则仅提取常规文件(数据部分),不包含控制文件。
示例命令:
dpkg-deb -x package.deb /path/to/destination
此时,/path/to/destination目录将不包含DEBIAN目录,仅包含软件运行所需的文件。
dpkg-deb会保留文件的原始所有者(如root)和权限(如755);若需取消此行为,可添加--no-same-owner或--no-same-permissions选项。.deb包中包含嵌套的.deb文件(较少见),可使用--no-debs选项排除这些嵌套包。综上,Debian Extract(dpkg-deb)可以提取所有文件(包括控制文件),但需使用-R选项;若仅需常规文件,则使用-x选项即可。