首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>安装配置>正文

CheckInstall-便民的Linux源码安装工具

http://www.oklinux.cn  2007-11-02  来源: oklinux收集整理 oklinux  会员收藏  游客收藏  【 】 

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

简介

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

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

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

./configure && make && make install.

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

* 每个文件夹/子文件夹下的一个或多个Makefile(s)

* 一个名叫config.status的脚本

* 一个文本文件config.log

* 另一个名叫config.cache的脚本(可选的)

* 带有系统非凡定义的C头文件(*.h)(可选项)

configure脚本文件成功运行之后, 你会输入make来编译程序,得到你需要的可执行文件。你也可能在make之后马上使用make check来运行测试。但是这只是可选的步骤,因为这需要这个程序包的支持。假如 make成功的完成了,你可以使用make install来安装这个程序了——很明显,完成这步你需要一些相关权限。程序安装好了,你可以在源代码的文件夹下输入make clean来清除这些生成的可执行文件和目标文件。假如你还想删除由configure生成的文件,那么输入 then typemake distclean.后两步同make check一样(是可选的),它们通常是开发者在开发和测试阶段所使用,也可以被一般使用者用来节省硬盘空间或者保持文件夹的结构简洁明快。另外make distclean使得我们在不同类型的电脑上编译程序成为可能。

关于GNU Autoconf的具体资料可以在在线文档[2]上找到。在基本介绍之外,你可以通过写你自己的configure脚本、用M4编程和创建自己的宏等方式来学习更多有关GNU Build System的知识。

CheckInstall

前面提到,我们采用GNU Autoconf通过一系列如下指令来编译程序:

./configure && make && make install

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

./configure && make && checkinstall

指令checkinstall不仅默认运行了make install,而且还监测所有安装过程中的写操作。为此,CheckInstall使用了Pancrazio de Mauro 所写的程序Installwatch [3].在make install成功完成之后,CheckInstall会产生一个Slackware-, Debian- 或RPM- 安装包,然后按照软件包的默认配置安装程序,并在当前目录(或标准安装包存储目录)留下一个生成的安装包。而外,你可以通过修改变量PAK_DIR来修改保存这个目录。这样生成的安装包安装到其他机器上而无须重新编译——当然,还得考虑软件包的相互依靠性。



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

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

我们还可以让CheckInstall带着很多参数运行。如下命令会显示所有可用的子参数,这些子参数大致分为:安装选项(Install options), 脚本处理选项(Scripting options), 信息显示选项(Info display options),安装包选项(Package tuning options),清除选项(Cleanup options)和关于CheckInstall(About CheckInstall)等。

# checkinstall -h

假如CheckInstall带着这些参数运行,他会使用这些参数值来代替配置文件checkinstallrc中相应的值。

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

安装

CheckInstall已经在大一些的发行版的“程序池”(software pools)中存在很长的时间了,可以通过发行版各自提供的安装方式安装。你也可以在主页[4]上下载各种预编译好的安装包或者合适的源码包。

CheckInstall的安装非常简单,只需要很少的步骤——但要成功的安装CheckInstall你似乎需要 CheckInstall.在必要的make install之后,你输入checkinstall,就会从编译好的程序生成合适的二进制安装包。现在,你可以使用你的安装包治理程序来“干净的”安装或者卸载了。在CheckInstall创建安装包之前,你还得必须回答一个关于程序安装包治理器的问题,并且还要检查相关信息的正确性。这些信息将会出现在稍后生成的安装包的头部。

下面将展示安装checkinstall-1.6.0beta4.tgz的全过程。这会安装上CheckInstall、 Installwatch和makepak,其中makepak是makepkg的修改版。假如你对新版本的改进感爱好,请参看Release Notes [5] 和/或 Changelog [6].

共2页: 上一页 1 [2] 下一页

上一篇:Linux笔记本不讨用户欢心难成破竹之势?   下一篇:fc7下常用软件安装包括字体


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·fc7下常用软件安装包括字体
·RHAS4gcc安装记
·X60-B57AtherosWifi在SuSE下的驱动安装手记
·甩开Lilo,使用Grub
·通过Grub安装或者升级Fedora1.0Redhat9.08.07.XAS2.1A
·Linux开机程序之研讨
·linux启动全接触
·Linux下安装Realtek 80SC千兆网卡驱动
·备份和修复linuxLILO指南
·使用yum把内核升级到Kernel2.6.0test9
·RedHat7.3LiveinCDROMHowTo
·制作FedoraDVDISO的方法
·制作自己的Floppy-LinuxStepByStep
·Linux中安装Alsa声卡驱动的一些经验心得
·Vista与Linux操作系统双启动
·在Linux操作系统中,通过bonding 绑定实现网络负载均
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·将Linux加入到WindowsNT/2000的启动选
·UbuntuLinux系统帐户密码找回功能
·一行命令在Ubuntu上装好Firefox 3 Beta
·小企鹅(FCITX)输入法快速安装笔记
·如何清理Ubuntu系统中的无用软件包
·Ubuntu 7.10 (Gutsy) 下安装 Tor 的过
·Ubuntu Linux系统下硬盘ISO启动方法介
·将Ubuntu Linux系统放到你的移动硬盘中
·重装Windows操作系统后修复Fedora的Gru
·Ubuntu 7.0下配置安装VirtualBox .5.4
·Linux操作系统下如何配置Qt(4.3.2)环境
·如何制作Ubuntu Linux系统的本地源
  阅读排行
·Redhat5 Server下载、序列号以及相关介
· 在U盘上安装Damn Small Linux
·Linux的GRUB引导程序配置方法大全
·新手学堂 详细讲解Ubuntu Server安装过
·新手入门 Fedora Linux 7系统的安装指
·从硬盘安装RHEL 5(Red Hat Enterprise
·RedHat AS 4.0 硬盘安装图解一
·什么是Linux?Linux与UNIX之间的关系
·Linux不是Windows
·Intel 845集成显示驱动
·简介 PLAYSTATION 3 上的 Linux
·安装大型Linux 集群: 配置服务和安装
·Linux操作系统配置基础祥解:GRUB入门
·tagfile帮你定制安装slackware
·介绍Linux操作系统下添加新硬盘的方法
网摘收藏: