Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201431
  • 博文数量: 103
  • 博客积分: 5051
  • 博客等级: 大校
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-08 11:07
文章分类

全部博文(103)

文章存档

2011年(1)

2010年(2)

2009年(100)

我的朋友

分类: LINUX

2009-04-29 21:59:38

关于checkinstall简介:安装,打包

目前 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,可以到

下载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软件包并安装它。
我们的软件包创建到此成功结束。 
阅读(704) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~