跳到主要内容

Linux 制作 deb 包

Deb 包结构

deb 包结构包含两部分:

  • 控制信息(DEBIAN 目录)
  • 安装内容(etc、usr等目录)

DEBIAN 目录通常包含一下文件:

文件名描述
control主要描述软件包的名称(Package)、版本(Version)以及描述(Description)等,是 deb 包必须具备的描述性文件,以便于软件的安装管理和索引。同时为了能将软件包进行充分的管理。
postinst该脚本的主要任务是完成安装包时的配置工作。许多 postinst 脚本负责执行有关命令为新安装或升级的软件重启服务。
postrm软件卸载后需要执行的脚本,主要负责修改软件包链接文件、或删除创建的文件。
preinst在 Deb 包文件解包之前,将会运行该脚本。许多 preinst 脚本的任务是停止作用于待升级软件包的服务,直到软件包安装或升级完成。
prerm软件卸载前需要执行的脚本,主要负责停止与软件包相关的 daemon 服务。
copyright版权许可。
changlog修订记录。
conffiles配置文件。

Deb 包制作

deb 包的制作有三种情况:

  • 源码包制作 deb 包
  • deb-src 包制作 deb 包
  • 修改现有的 deb 包制作新的 deb 包

源码包制作 deb 包

源码包制作 deb 包一般常用有两种方法:

  • 方法一:使用 checkinstall —— checkinstall 不仅可以生成 deb 包,还可以生成 rpm 包,使用简单,但是不灵活,功能粗糙。
  • 方法二:使用 dpkg 工具 dh-make —— dpkg 是最基本的制作 deb 包的方法。

使用 checkinstall

安装依赖关系软件包

sudo apt install build-essential automake autoconf libtool pkg-config \
libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev \
libglib2.0-dev libevent-dev checkinstall

下载代码

配置、编译

./configure
make

以一种交互的方式进行打包,过程会显示软件包基本信息,可直接修改

sudo checkinstall

测试

dpkg -i dante_1.3.2-1_amd64.deb  # 安装
dpkg -r dante_1.3.2-1_amd64.deb # 卸载

使用 dpkg 工具 dh-make

安装依赖关系软件包

sudo apt-get install dh-make make fakeroot

deb-src 包制作 deb 包

修改现有的 deb 包制作新的 deb 包