deb打包解包

作者:zhangyunlong 发布时间: 2025-07-22 阅读量:4 评论数:0

deb包基本结构

deb包是Debian 及其衍生系统(如 Ubuntu)使用的软件包格式

一个deb包一般包含两部分: 数据部分控制部分

数据部分

包含了软件实际安装到系统中的文件,解压后通常有以下几个目录

/bin,/usr,/etc,/lib,/var,分别存放二进制执行文件,软件包多数文件存放路径,配置文件,库文件,日志文件等

控制部分

包含了软件包的元数据和控制信息,解压后主要有以下文件:

必须包含文件有control,其他文件postinst、postrm、preinst、prerm按需创建和配置

control 文件:包含了软件包的基本信息,如软件包名称(Package)、版本号(Version)、描述(Description)、依赖关系(Depends)、维护者信息(Maintainer)等

如:

Package: example-package
Version: 1.0-1
Maintainer: John Doe <johndoe@example.com>
Description: This is an example package for demonstration purposes.
Depends: libc6, libssl-dev

各控制脚本作用

pretinst: 软件安装前执行操作,常用于检查系统环境,创建必要的文件

postinst: 软件安装后执行操作,常用于启动服务,更新配置

prerm: 软件卸载前执行操作,常用于停止服务,备份配置

postrm: 软件卸载后执行操作,常用于清理残留文件和配置

具体在安装、卸载、覆盖安装时执行顺序

首次安装:preinst->postinst

卸载:prerm->postrm

升级:prerm->preinst->postinst


deb包制作

使用系统自带的dpkg-deb和dpkg命令对包做简单修改并重新打包

解包:dpkg-deb -R exapmle.deb ./repackage #将exapmle.deb内容全部解压到./repackage

打包:dpkg-deb -b ./repackage new.deb #构建./repackage内容生成new.deb包

dpkg-deb参数说明:

-R 解压控制信息和控制文件,-e 解压控制信息,-x 解压控制文件,-b 构建包

-c 列出软件包内文件的详细信息,-I 、-f 列出包的说明信息,-W 列出包名和版本信息

评论