2012年(14)
分类: LINUX
2012-08-17 13:36:01
一.关于 CheckInstall的背景知识:
前面我们介绍了怎么在wdOS系统中使用源码编译安装的方式来安装LAMP,LNMP,LNAMP环境以及基于它们的应用如安装Discuz论坛,Wordpress博客和PhpMyAdmin数据库的管理套件等等。不知道各位会不会像我那样在安装过程中遇到需要卸载然后重新编译安装的问题只,make file 只有少数的卸载例子,所以使用make uninstall时很多时候都不能帮我们清理已经安装的内容。而如果你的程序是需要经常重复编译,你就得每次都到这些目录下删除原本安装过得内容,这个过程十分的麻烦。
CheckInstall 是一款优秀的源码安装软件,它使得 Linux 软件管理更加方便。Checkinstall 是一个能从 tar.gz 类的源代码自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall,你就能用几乎所有的 tar.gz 类的源代码来生成“干净”的安装或者卸载包。 特别是在源码需要经常重复编译的情况下,CheckInstall 可以让你丝毫不破坏系统一致性的前提下完全的卸载程序。而且,你还可以使用这些编译好的安装包直接在其他的机器上安装无须再重新编译 。
二.安装过程:
下载checkinstall源码到/usr/local/src这个目录下:
解压缩源码包: tar xf checkinstall-1.6.2.tar.gz.1
进入checkinstall-1.6.2这个目录下,进行编译:make
完成后进行安装初始化:make install
安装完后使用checkinstall命令将checkinstall本身打成rpm包 :
这一步选择y:创建一系列默认的封装文档
打包方式选择RPM:
下一步如果你不需要修改这些默认值的话,可以enter一下进行下一步
提示checkinstall-1.6.2-1.i386.rpm已经封装在/usr/src/redhat/RPMS/i386/这个目录下:
根据上面提示进入到/usr/src/redhat/RPMS/i386/这个目录下,ls一下就会看到已经封装好的checkinstall封装包:
使用 rpm -i checkinstall-1.6.2-1.i386.rpm来安装
安装完毕后可以使用rpm查询语句rpm -qa | grep checkinstall ,查看是否安装成功:
或者使用包管理程序的查询语句rpm -qi checkinstall 检查安装包中文件是否完全在程序库中记录了以及安装包头部的一些额外信息。
下面就来讲讲checkinstall的配置文件:
我们可以通过修改配置文件 /usr/local/lib/checkinstall/checkinstallrc 来改变 CheckInstall 的默认配置。
在这个配置文件中,值得注意的有以下三个变量:
INSTYPE :这里设置默认的封装类型 有slackware rpm debian三个选项
如果你不确定接下来使用什么封装类型,你可以选择空着,下次封装时系统会提示选择要封装的类型
PAK_DIR: 决定安装包的存储目录 同样的,你可以先空着
INSTALL :决定是只生成安装包还是生成包后马上安装
0-只生成安装包
1-不仅生成安装包,还将包立即安装
三.基于checkinstall这个工具的应用实例:
说明:我这里以nginx-1.0.4.tar.gz为例进行说明。其实前面几步都与我们之前做过的nginx源码安装一样,不一样的只是make install这一步用checkinstall 来代替,然后根据提示安装即可。
进入到/usr/local/src这个目录先下载nginx的源码包
解压缩: tar -zxvf nginx-1.0.4.tar.gz
由当前目录cd 进入nginx-1.0.4 这个目录下,设置编译需要用到的参数:
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/share \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/log/run/nginx.pid \
--lock-path=/var/log/lock/subsys/nginx \
下一步就是进行编译:make
我们要用到checkinstall工具,所以下一步用checkinstall代替makeinstall,然后根据提示一步步来:
打包方式选择rpm:
rpm包的建立会用到的值,如果没有要修改的,enter开始下一步:
封装成功:
根据提示cd 进入到/usr/src/redhat/RPMS/i386/ 这个目录下
使用rpm -ivh nginx-1.0.4-1.i386.rpm来进行安装
安装完之后可以检查是否存在:
查看更详细的信息:
如果需要重新安装这个rpm包,可以使用rpm -e nginx 来删除再重新初始化安装即可。