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