关于checkinstall简介:安装,打包
目前 Linux distro 打包,不外是 tgz/rpm/deb,其中 tgz 最单纯,但也因此,刚接触的朋友要打包的话,常常会碰到问题。
checkinstall 是由 installwatch 这个工具而?淼模?壳?1.5.3)可以打包 tgz/rpm/deb,其中 deb 是新加入的功能。
他的使用很简单,把 source tarball 抓下,解开,然后到 source 目录下,有 configure 的执行 ./configure 后,直接下 checkinstall 即可,这个动作会做 make install 的动作,?K加上 checkinstall 本身额外的动作,例如 strip,??man 压缩……等等。
这时不但会安装软件,也会产生 binary package。如果?]有 configure,但有 Makefile 的话,就直接执行 checkinstall。
如果两者都?]有,或不完备,那就只好自行写 build script 了。或自行写个 Makefile 再来执行 checkinstall。
checkinstall 还可以加不少参数,请 checkinstall -h 看说明。
---
checkinstall现在的最新版本是1.6.0beta2,稳定版本是1.5.3,可以到
http://asic-linux.com.mx/~izto/checkinstall/download.php下载pkg包。
下载下来的文件为checkinstall-1.5.3-i386-1.tgz,请用installpkg 安装。
下面以zhcon为例,说明制作的过程。
tar zxvf zhcon-0.2.3.tar
cd zhcon-0.2.3
./configure
make
上面这几步同从源代码编译安装一样,如果不用checkinstall制作slackware
软件包,下一步该是make install了。我们要用checkinstall,所以用执行checkinstall代替。
在运行checkinstall之前,要在当前目录下创建一个对这个软件包的描述文件description-pak,但这个文件不是必须的。
cat > description-pak
zhcon-0.2.3
Zhcon is a fast Linux Console Chinese System which supports
framebuffer device.It can display Chinese, Japanese or Korean
double byte characters.Supported language encodings include:
GB2312, GBK, BIG5, JIS and KSC.
另外还可以在当前目录下创建4个特殊的脚本文件preinstall-pak, postinstall-pak, preremove-pak和postremove-pak。
preinstall-pak在被安装之前执行,postinstall-pak在被安装之后执行,preremove-pak在被删除之前执行,postremove-pak在被删除之后执行。同样,这4个脚本文件不是必须的。
如果要制作的软件有一些特殊的要求,比如创建一个特殊的用户或者组,这4个脚本就有作用了。
然后在当前目录下创建一个doc-pak的目录,这个目录是用来存放软件的相关文档的。比如说README, INSTALL, COPYING, Changelog, TODO, CREDITS等文件。这些文件在安装软件包时将被拷到/usr/doc/”软件包名称“目录下。如果你现在不创建,在生成软件包时将提醒你是否创建这个目录和拷贝相关文件,如果你再选择否,那么制作的软件包将没有文档。
下面开始用checkinstall创建软件包了,在执行之前确保你是root用户。执行checkinstall。
checkinstall
如果开始你没有创建doc-pak目录,此时将会提示你是否创建。
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:
按y自动创建和拷贝,按n取消。
下面checkinstall将创建安装软件包,checkinstall默认安装命令是 make install,你得根据你的软件安装说明具体而定,有些软件的安装命令不是make install,而是其他,你则换成
checkinstall make modules_install
checkinstall install.sh
checkinstall setup
等形式。这样,我们也可以把一些以二进制包发布的软件用checkinstall创建为slackware的软件包,只要再checkinstall后面加上安装指令作为参数即可。
下一步checkinstall将会询问创建什么软件包,
Please choose the packaging method you want to use.
Slackware [S], RPM [R] or
Debian [D]?
选择s创建slackware的pkg软件包,选r创建
redhat的rpm软件包,选d创建debian的deb软件包。我们选择s继续。
This package will be built according to these values:
1 - Summary: [ zhcon-0.2.3 ]
2 - Name: [ zhcon ]
3 - Version: [ 0.2.3 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 -
Architecture: [ i386 ]
8 - Source location: [ zhcon-0.2.3 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:
checkinstall给出一个菜单让你选择修改软件包的一些属性,想修改就按对应的数字键,否则回车继续。我们按7修改软件包的
系统平台,
Enter the architecture type:
>> i686
This package will be built according to these values:
1 - Summary: [ zhcon-0.2.3 ]v
2 - Name: [ zhcon ]
3 - Version: [ 0.2.3 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i686 ]
8 - Source location: [ zhcon-0.2.3 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:
然后回车继续,checkinstall将会在当前目录生成制作好的pkg软件包并安装它。
我们的软件包创建到此成功结束。