快速业务通道

Linux 的源码安装工具 CheckInstall

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

Checkinstall 是一个能从 tar.gz 类的源代码自动生成 RPM/Debian 或Slackware 安装包的程序.通过 CheckInstall,你就能用几乎所有的 tar.gz 类的源代码来生成“干净”的安装或者卸载包.

引言

经常出现这样的问题:很想试用的程序只有源代码(比如 tar.gz )可用,没人提供 RPM 或者Debian 包.你只好下载源代码,解压,然后手动编译.到目前为止,一切正常.然而,当你想删除它的时候呢?

Makefile 文件只包括了很少情况下的卸载例程.当然,你可以把程序安装到临时文件夹,然后记下所有由程序生成或修改的文件,删除他们.但是如果这个程序要经常重新编译,这样做是非常痛苦的,工作量也相当大.Felipe Eduardo 所写的 CheckInstall 就是用来解决这个问题的.

用 GNU Autoconf 安装程序

一般说来,我们编译安装一个由 GNU Autoconf 配置的程序是采用如下的步骤:

./configure && make && make install

这个 configure 脚本文件是用来“猜”出一系列系统相关的变量,这些变量是在后面的编译过程要用到的.它将检查系统变量值是否满足编译要求,然后使用这些变量在程序包内每个文件夹下生成 Makefile.此外,configure 脚本还会生成其它文件:

●每个文件夹/子文件夹下的一个或多个 Makefile(s)
●一个名叫 config.status 的脚本
●一个文本文件 config.log

Configure 脚本文件成功运行之后, 你会输入 make 来编译程序,得到你需要的可执行文件.如果 make 成功的完成,你可以使用 make install 来安装这个程序.

用 CheckInstall 安装程序

上节我们采用 GNU Autoconf 来编译程序,现在该是换一种方式的时候了.你可以使用CheckInstall 工具.它采用自己的指令 checkinstall 来代替 make install.其他两个指令保留下来跟以前一样,因此,现在这个指令序列使用 CheckInstall 变成:

./configure && make && checkinstall

指令 checkinstall 不仅默认运行了 make install,还监测所有安装过程中的写操作.为此,CheckInstall 使用了 Pancrazio de Mauro 所写的程序 Installwatch.在 make install 成功完成之后,CheckInstall 会产生一个 Slackware-,Debian- 或RPM- 安装包,然后按照软件包的默认配置来安装程序,并在当前目录(或标准安装包存储目录)留下一个生成的安装包.你可以通过修改变量 PAK_DIR 来修改这个保存目录.

CheckInstall 并不只是使用 make install,它还可以与其他安装指令相协调.例如,如果安装指令为 setup.sh,那么安装指令序列变成:

./configure && make && checkinstall setup.sh

我们还可以让 CheckInstall 带着很多参数运行.


图 1. 运行命令“checkinstall –h”显示所有可用的子参数

运行命令“checkinstall –h”

这些子参数大致分为:

●安装选项(Install options)
●脚本处理选项(Scripting options)
●信息显示选项(Info display options)
●安装包选项(Package tuning options)
●清除选项(Cleanup options)
●关于 CheckInstall (About CheckInstall).
●如果 CheckInstall 带着这些参数运行,它会使用这些参数值来代替配置文件 checkinstallrc 中相应的值.

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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号