从tar包中创建一个二进制发布包(RPM,Debian,SlackWare,etc)并不太方便。虽然如果源代码包里还有spec文件后,可以直接利用rpmbuild来创建rpm包,遗憾的是,只有少部分tar包包含了spec文件。另外,创建deb包呢?创建SlackWare的.tar.gz包呢?
checkinstall是一个不错的脚本,用来自动创建上述三种二进制发行包。
详细的例子可以看网站的Readme,我这里给出一个例子,和大家分享:
假定我们需要创建最新的openssh包,编译环境为AXS3.0 for X86:
下载最新的checkinstall包,rpm,tar.gz均可
http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz
http://asic-linux.com.mx/~izto/checkinstall/files/rpm/checkinstall-1.6.1-1.i386.rpm
通用方式安装,实际上是shell脚本,因此rpm包很容易安装通过。
下载最新的openssh源代码包
http://openssh.linux-mirror.org/portable/openssh-5.0p1.tar.gz
通常方式解压,编译(不安装)
$tar -xzf openssh-5.0p1.tar.gz $cd openssh-5.0p1/ $./configure --prefix=/usr $make创建二进制包
a)
$mkdir doc-pakb)
$cp README INSTALL COPYING Changelog TODO CREDITS doc-pakc)#checkinstall -R rpm .... Done. The new package has been saved to /usr/src/asianux/RPMS/i386/openssh-5.0p1-1.i386.rpm You can install it in your system anytime using: rpm -i openssh-5.0p1-1.i386.rpm安装二进制包
默认生成的二进制包存放在/usr/src//RPMS/i386下面。最后的提示也会告诉你,现在你就可以安装了。
看我的版本:
#ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8b 04 May 2006
另外,很重要的一点:openssh5.0p1版本(不知道是不是从5.0开始)已经可以自动更新修改的公钥了,这意味着我之前写的脚本白费了,唉。