如何在CentOS5.5下编译mysql-proxy

来源:互联网 发布:淘宝活动入口 编辑:程序博客网 时间:2024/05/14 13:04

mysql-proxy8.0里需要的模块如下:

lua >= 5.1

glib >= 2.16

gmodule >= 2.16

gthread >= 2.16

libevent >= 1.4

 

1、libevent

首先libevent可以直接用yum进行安装,yum search event,找到符合当前操作系统的版本,由于我的操作系统是64位,并且需要进行开发,因此选 libevent-devel.x86_64,yum install libevent-devel.x86_64,即可。

 

2、gxxx

而对于glib, gthread, gmodule而言,其实都是包括于glib2的,但是centos的repository里的glib2版本是2.12,并不符合,因此需要自己编译,去http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.24/glib-2.24.2.tar.gz下载一个2.24版本,然后进行编译。我编译的时候发现没有zlib,用yum直接搞定就行了。

 

3、lua

由于yum上找不到lua,因此这个也需要自己编译,从http://www.lua.org/ftp/下载之后,直接make linux, make install即可。

 

4、configure

前面这些工作完成之后我们就可以编译mysql-proxy了,这里注意,需要用-with-msql来指定mysql-config的位置,如果你的mysql-config不在path上的话。

首先是./configure,这个过程中它依然会报说glib版本不对,其实这个是因为我们没有指定pkgconfig的搜索路径,这里我们将lua/etc/lua.pc以及glib下的glib.pc, gmodue.pc, gthread.pc等拷贝到一个目录 ,然后export PKG_CONFIG_PATH为那个目录即可。

 

5、make

结果编译过程中出了一个fPIC的问题,查了一下发现,原来lua默认不是-fPIC方式编译的,指定-fPIC意味着编译成动态链接库。而mysql-proxy里对于lua的使用就是以动态链接库的方式,因此我们需要重新编译lua,在src/Makefile里将CFLAGS和MYCFLAGS里都加上-fPIC参数,然后重新跳到步骤3进行编译。

 

至此,编译已经完成了,而如果你需要一个debug版本的话,还需要将-g参数打开,同时将-O2参数禁掉。

原创粉丝点击