Linux下deb包的制作方法记录

deb 想要制作deb包,有多种方法,这里只说我认为最简单的方法dpkg-deb -b来生成deb

原理

将要打包进deb包中的所有文件复制到一个根目录

我们把这个根目录路径保存到一个变量中,这里假设为${buildroot}它的值是~/buildroot,要打包的文件以这个根目录为开始,保持和系统一致的路径,例如你这个deb包安装后要释放一个启动脚本到系统的/etc/init.d/目录下,那么你需要在这个根目录中创建相应的目录层级,然后将文件复制到这个目录下

编写DEBIAN/contorl文件

这是最重要的文件,它描述了这个包的信息

1
2
3
4
5
6
7
8
9
Package: helloworld        # 软件包名字
Version: 1.0.0             # 软件包版本
Section: unkown            # 软件包的分类 https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
Priority: optional         # 软件包的优先级,这里一般都是 optional 表示软件包是可选的
Architecture: amd64        # 软件包的架构
Depends: zlib1g-dev        # 软件包依赖哪个软件包,多个用","号分隔,多行用"\"号分隔
Maintainer: Jerry Wang[1976883731@qq.com] # 软件包维护者
Description: nginx build by hws # 软件包描述
Homepage: https://www.hws.com   # 软件包主页

四个可选操作

  • 编写(安装前执行的脚本)DEBIAN/preinst
  • 编写(安装后执行的脚本)DEBIAN/postinst
  • 编写(卸载前执行的脚本)DEBIAN/prerm
  • 编写(卸载后执行的脚本)DEBIAN/postrm

打包文件

1
dpkg-deb -b ${buildroot} helloworld-1.0.0-linux-amd64.deb
updatedupdated2025-03-012025-03-01