Linux源码打包工具CheckInstall

来源:互联网 发布:张晶漫画家 知乎 编辑:程序博客网 时间:2024/05/22 03:41

Checkinstall是能够通过源码,自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall生成的安装包,可以通过linux的各种软件包软件包管理器来管理安装与卸载,保证系统的”干净“。

使用GUN Autoconf安装程序时我们一般是使用源码提供的Makefile在进行构建,但Makefile很多情况下是不提供卸载或升级的,所以我们只能自行的进行程序的管理,这样在我们升级或卸载时就非常繁琐,所以我们可以通过打包工具,打包成安装包,以供我们在该平台下进行程序的管理。

一般来说,我们编译GNU Autoconf配置的工程是使用:

./configuremakemake install

的步骤来编译安装工程,并安装至预定位置。configure脚本即是检查安装程序之前,系统是否满足某些依赖项,在make时需要用到,同时会根据编译参数生成Makefile文件(若有依赖子工程,则会在子工程文件夹统一生成Makefile文件,同时也会生成一个日志文件config.log和配置脚本config.status),然后就可以进行make,从临时文件夹中编译出可执行文件,并可以通过make install安装到指定目录中。

安装:sudo apt-get install checkinstall


使用checkinstall来打包安装程序

通过checkinstall来打包程序非常简单,只需要利用checkinstall来替换上文中的make install就会生成指定的打包文件:

./configuremakecheckinstall

使用checkisntall指令时,会产生一个事务并运行make install检测所有安装过程中的写操作,在make安装执行完以后,会回滚事务,同时产生一个.deb,.rpm或slackware的安装包。关于生成安装包的路径,可以通过设置PAK_DIR的环境变量来修改。
同时,若安装程序使用的不是make install使用shell脚本来进行安装的话,也可以通过checkinstall来进行打包,例如,安装脚本为setup.sh:

./configuremakecheckinstall setup.sh

checkinstall的参数配置

checkinstall默认打包的类型为deb,可以通过参数来生成不同的打包程序:

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran           This software is released under the GNU GPL.Usage: checkinstall [options] [command [command arguments]]Options:*Package type selection*-t,--type=<slackware|rpm|debian> 设置打包类型-S                               打包成Slackware-R                               打包成RPM-D                               打包成DEB

CheckInstall 也有自己的局限之处。它不能处理静态连接的程序,因为这样 Installwatch 就不能监测到安装过程中修改过文件了。总体说来,有两类连接库:动态的和静态的。这些连接库通过 include 指令整合到程序中。静态连接过的程序已经包含了所有需要的库文件,运行时也就不需要再将这些库载入内存中。这种程序与安装在系统中的连接库无关,因为所谓的连接器(Linker)已经在编译时把这些库内置到可执行程序里了。

0 0