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 列出包名和版本信息