deb包是Debian操作系统及其衍生版本(如Ubuntu)中使用的软件包分发和安装的标准格式。
组成
① 数据包,包含实际安装的程序数据,文件名为 data.tar.XXX。
② 安装信息及控制脚本包,包含 deb 的安装说明,标识,脚本等,文件名为 control.tar.XXX。
③ deb 文件的一些二进制数据,包括文件头等信息。
XXX代表压缩格式
数据包
就是我们需要安装到系统的可执行文件、动态库、配置文件、目录等,所见即所得。

安装信息
与安装相关的信息都放在DEBIAN目录下,与需要打包的目录同级别

① control文件,用于记录软件包名称,[版本号],平台,依赖信息等数据,必选。

- Package:包名称,使用dpkg 命令查询时就是以这个为准的;
- Version:版本;
- Architecture:目标架构,不匹配会安装失败;
- Maintainer:维护人和邮箱;
- Description:包的简要说明;
- Depends:本软件包依赖的其他软件包即要求的版本(如果借助 apt 命令安装 deb包的时候,就会先安装依赖,在安装本软件包)。
② preinst文件,安装前做一些初始化工作,如目录创建,文件创建,配置文件初始化、备份旧文件等,非必选。

③ postinst文件,安装后做的处理,如目录权限、属组修改、通过脚本启动后台服务等,非必选。

④ prerm文件,卸载前做的处理,通常会停止与包相关的守护程序,非必选。

⑤ postrm文件,卸载后做的处理,如还原preinst备份的文件等,非必选。


打包
执行:
dpkg-deb --build sensor\_1.0-1\_arm64
讯享网
sensor_1.0-1_arm64_deb为包名,包名遵循规则:<软件名称>_<主版本号>-<修订版本号>_<硬件架构>.deb

注意:
1) 执行打包指令前先设置DEBIAN目录下的preinst,postinst,prerm,postrm文件权限为0555或0755,否则,打包报错。

讯享网chmod 755sensor\_1.0-1\_arm64/DEBIAN/{
preinst,postinst,prerm,postrm}
2) 打包时会以当前用户规定软件包的属组。
dpkg -c sensor\_1.0-1\_arm64.deb

安装
讯享网sudo dpkg -i sensor\_1.0-1\_arm64.deb

查询安装状态:dpkg -s sensor

查询安装文件:dpkg -L sensor

deb包安装后,文件会被放置于 /var/lib/dpkg/info/ 目录下,如sensor的脚本文件安装后存储于 /var/lib/dpkg/info/ 目录下,以 sensor.*字符开头的文件名就是sensor的相关配置脚本:

卸载
sudo dpkg -r sensor

仍能查询到软件包信息


sudo dpkg -P sensor命令才完全卸载干净
特点
- 无需以命令设置文件的权限、[所有者]和[用户组],所见即所得。
- 脚本依照安装和卸载的先后[顺序执行],可以提供更多选择。比如备份还原操作,可以在 preinst 中[备份文件],而在 postrm 中还原文件。
- 遵循严格的依赖关系,安装时就提示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29615.html