从源码构建deb包

本文以Arc-theme的简单打包为例,更多信息可参考PackagingGuide

从可正常工作的源码构建Ubuntu包

一般打包步骤:

  1. 在源码的基础上添加适当的编译脚本(configure、makefile)。

  2. 使用dh_make生成相应的debian包模板,并对模板进行你需要的修改(尤其是debian/rules文件)。

  3. 使用dpkg-buildpackage等建包命令进行建包。

下载源码包

从来源处下载源码包,并解压。注意:解压出来的文件夹应为<包名>-<版本号>的格式,以便下一步中的工具进行识别,并且包名字母需为全小写。然后我们需要创建一个原始上游代码的压缩包,以便把我们对程序源代码所做的修改记录下来并且与未经修改的上游代码进行对比。

创建Debian控制文件

我们可以使用dh_make--createorig标志创建原始上游压缩包。同时dh_make还能生成所有其他用于构建deb包所需的控制文件。

$ cd Arc-theme/

$ ls -F
AUTHORS      ChangeLog  configure.ac  extra/  Makefile.am  README.md
autogen.sh*  common/    COPYING       m4/     NEWS

$ dh_make --createorig --copyright GPL3 --email test@test.com --single

dh_make更多参数可参考man。

到这一步debian目录已经生成。这个目录里包含所有Debian建包工具创建deb包所需的信息,包括用于编译应用程序自身的构建指令。这些指令是解释程序,无需编译任何实际的源代码。

$ ls -F debian/
arctheme.cron.d.ex    control       manpage.sgml.ex  preinst.ex     source/
arctheme.default.ex   copyright     manpage.xml.ex   prerm.ex       watch.ex
arctheme.doc-base.EX  docs          menu.ex          README.Debian
changelog             init.d.ex     postinst.ex      README.source
compat                manpage.1.ex  postrm.ex        rules*

修改控制文件

我们需要修改debian目录下的一些文件。我们需要编辑控制文件,保证信息的正确。编辑如下:

Source: arctheme
Section: unknown //修改
Priority: optional
Maintainer: Mo 
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Homepage: //上游主页
Package: arctheme
Architecture: any
Depends: //填入依赖信息
Description: //描述部分

修改规则文件

debian/rules

打包

dkpg-buildpackage -rfakeroot -tc -b

然后就可以在上层目录找到打包好的deb包了。