Linux中用编译的Zlib库替换系统自带的

 分类: Server

环境:Centos 5.8 64位
系统自带zlib:1.2.1
安装版本:1.2.3

这段时间在重新编译LNMP,发现linux中很多软件对zlib依存都比较大,但是系统中安装的版本都比较低,如果用yum直接升级的话,安装nginx时候没法指定zlib的目录,所以要编译安装zlib。编译的话,如果能把系统中已经安装的版本替换掉,这样才是最好的.但是由于在编译过程中,很多工具都对zlib有依存,所以掌握顺序非常必要,下面是博主在毫无指导资料的情况下,尝试了差不多一天总结出来的经验:

1,下载,解压 zlib1.2.3到/usr/local/src/下

2,查看一下zlib安装文件,rpm -ql zlib,可以看到库文件在lib64下

3,配置zlib,参数为 ./configure –prefix=/usr/local/zlib/,也可以加上–libdir=/lib64/直接指定库文件安装位置,这里为了我便于管理,就把所有文件放在一个目录下

4,用make进行编译

5,卸载zlib,掌握这个顺序很有必要,如果卸载早了的话,上一步就会提示失败。卸载指令 rpm -e –nodeps zlib,卸载完成之后,发现/lib64/目录下,zlib的库文件,libz.so*没有了

6,用make install安装zlib,安装完成之后,可以看到/usr/local/zlib/目录下有个lib目录,里面存放的就是zlib的库文件

7,这时候用yum等工具,会提示确实libz.so*支持,所以必须把当前共享库文件注册到系统中,打开/etc/ld.so.conf,在下面加入一行/usr/local/zlib/lib/,然后保存退出

8,用ldconfig重新更新一下cache,这时候再用yum等工具,发现运行正常了,至此,zlib就更新成功。

另外注意一下,zlib现在的最高版本是1.2.8,但是如果在centos 5.*中安装大于1.2.3的版本,会出现一些错误,上一篇博客已有讲到,不再重复。

发表回复