Deb 包的制作
happyaron
(2010-10-17)
deb 格式是 Debian 系专用安装包格式,配合 APT 软件管理系统,成为了当前在 linux 软件中非常流
行的一种安装包。Debian 和 ubuntu 软件安装用的都是 deb 包。
但是很多人制作 deb 包时,都是从 rpm 转为 deb,或者使用
dpkg -b
进行转换。虽然这两种方法可
以制作出来 deb,但是显然很粗糙,今天介绍一下正规方法:使用 debhelper 制作 deb。今天用一个例子
来和大家一起做个包试试看。
我们的例子是 gwrite 这个软件,软件主页: http://code.google.com/p/gwrite/。您可以点击此处
下载源码。这个源码包在 Debian 项目里的术语叫做 upstream tarball,也就是上游发行的代码包。
源码下载完成后,我们在主目录里新建一个文件夹,例如叫 packaging,然后执行如下命令:
mkdir ~/packaging
cd ~/packaging
把刚才下载的 .tar.gz 文件放到这个文件夹里。然后用命令解压这个文件:
tar zxf gwrite-0.5.0.tar.gz
(不要使用图形化工具解压,因为会造成权限混乱),进入解压出来的目录:
cd gwrite-0.5.0
然后大家要安装几个软件包,依次介绍一下。第一个要安装的是 debhelper:
sudo aptitude install debhelper
debhelper 软件包里是各种脚本,可以帮助我们接下来的打包工作。下一个要安装的是 dh-make:
sudo aptitude install dh-make
dh-make 包提供了我们需要用到的 dh_make 命令。这个命令用于根据上游 tarball 生成我们 deb 包
模板。现在我们已经 cd 到解压好的程序目录,现在的文件夹路径是 ~/packaging/gwrite-0.5.0
。然后我们执
行这个命令:
dh_make -e “First Last <youremail@example.com>” -f ../gwrite-0.5.0.tar.gz
其中 First Last 是姓名,比如我是 Aron Xu。<>里是你的 email 地址。 -f 后面是上游 tarball 的
路径。如果上面那个命令报错,请使用这个:
dh_make -e youremail@example.com -f ../gwrite-0.5.0.tar.gz
(../ 的意思是当前目录的上层目录)接下来程序会提示:
Type of package: single binary, indep binary, multiple binary, library, kernel module,
kernel patch or cdbs?
我们输入 s,表示这个源代码包只生成一个 deb。输入 s,按回车。然后会显示一些信息,回车确认
这时候再看当前的目录,会多出一个 debian/ 文件夹。上级目录里,会出现 gwrite_0.5.0.orig.tar.gz 文
件。
接下来下面进到 debian/ 目录,第一个文件是 changelog。Changelog 顾名思义,是说软件版本历
史的。
gwrite (0.5.0-1) unstable; urgency=low