使用CheckInstall生成deb安装包

对于以源代码方式进行发布的软件包,我们进行安装的时候一般会执行

Code
./configure
make
make install
进行编译和安装,在卸载的时候需要执行

Code
make uninstall
这样作有一些不方便的地方:

  1. 需要保存编译过的源码包以便卸载时使用
  2. 保存的源码包不能再进行configure(改变安装目录等操作),因为这样会导致卸载时的脚本与安装时不同
  3. 有些作者不提供make的uninstall目标
  4. 有时会忘记哪个包有没有安装过

有一款软件 CheckInstall 为我们避免了上面的麻烦,她可以源代码自动生成 RPM/Debian 或Slackware 安装包的程序。这个软件包可以在ubuntu的源上找到。CheckInstall的使用非常方便,只要将上面的 make install 命令变为 checkinstall 就行了。安装过程就变为

Code
./configure
make
checkinstall

指令 checkinstall 不仅默认运行了 make install,而且还监测所有安装过程中的写操作。为此,CheckInstall 使用了 Pancrazio de Mauro 所写的程序 Installwatch。在 make install 成功完成之后,CheckInstall 会产生一个 Slackware-,Debian- 或RPM- 安装包,然后按照软件包的默认配置来安装程序,并在当前目录(或标准安装包存储目录)留下一个生成的安装包。我的系统是ubuntu,执行checkinstall后默认产生了deb包。需要注意的是:

  1. 由于需要执行安装过程,所以 checkinstall 得拥有 make install 需要的权限。
  2. 执行 checkinstall 后需要进行一些配置,其中版本号是必须填写的。

下面是运行checkinstall以后的部分输出:

Code
checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
本软件以 GNU GPL 版权协议颁布



*****************************************
**** Debian package creation selected ***
*****************************************

*** Warning: The package version 
"0.8_beta1" is not a
*** Warning: debian policy compliant one
. Please specify an alternate one


软件包将用下面的值来创建:

0 -  Maintainer: [ root@tiger-laptop ]
1 -  Summary: [ ghmm ]
2 -  Name:    [ ghmm ]
3 -  Version: [  ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ ghmm-0.8_beta1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]

输入一个数字来改变它们,或按回车键继续:
3
输入新的版本号
>> 0.8

软件包将用下面的值来创建:

0 -  Maintainer: [ root@tiger-laptop ]
1 -  Summary: [ ghmm ]
2 -  Name:    [ ghmm ]
3 -  Version: [ 0.8 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ ghmm-0.8_beta1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]

输入一个数字来改变它们,或按回车键继续:

Installing with make install

(略去安装的信息)
压缩 man 手册页……OK

创建文件列表……OK

创建 Debian 包……OK

安装 Debian 包……OK

删除临时文件……OK

生成备份包……OK

删除临时目录……OK


**********************************************************************

 Done
. The new package has been installed and saved to

 
/home/tiger/Download/ghmm-0.8_beta1/ghmm_0.8-1_i386.deb

 You can remove it from your system anytime using: 

      dpkg -r ghmm

**********************************************************************


本文参考了 Linux 的源码安装工具 CheckInstall

posted @ 2008-12-21 13:29  王程明  阅读(1031)  评论(0编辑  收藏  举报