Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

利用checkinstall自动创建二进制发布包

| Comments

从tar包中创建一个二进制发布包(RPM,Debian,SlackWare,etc)并不太方便。虽然如果源代码包里还有spec文件后,可以直接利用rpmbuild来创建rpm包,遗憾的是,只有少部分tar包包含了spec文件。另外,创建deb包呢?创建SlackWare的.tar.gz包呢?

checkinstall是一个不错的脚本,用来自动创建上述三种二进制发行包。
详细的例子可以看网站的Readme,我这里给出一个例子,和大家分享:

假定我们需要创建最新的openssh包,编译环境为AXS3.0 for X86:

  1. 下载最新的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包很容易安装通过。

  2. 下载最新的openssh源代码包

    http://openssh.linux-mirror.org/portable/openssh-5.0p1.tar.gz

  3. 通常方式解压,编译(不安装)

     $tar -xzf openssh-5.0p1.tar.gz 
     $cd openssh-5.0p1/ 
     $./configure --prefix=/usr $make
    
  4. 创建二进制包

    a) $mkdir doc-pak

    b) $cp README INSTALL COPYING Changelog TODO CREDITS doc-pak c)

     #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
    
  5. 安装二进制包

默认生成的二进制包存放在/usr/src//RPMS/i386下面。最后的提示也会告诉你,现在你就可以安装了。

看我的版本:

#ssh -V 
OpenSSH_5.0p1, OpenSSL 0.9.8b 04 May 2006 

另外,很重要的一点:openssh5.0p1版本(不知道是不是从5.0开始)已经可以自动更新修改的公钥了,这意味着我之前写的脚本白费了,唉。

Comments