您的位置:首页 > 数据库 > Memcache

AIX 6.1安装memcache

2012-08-29 15:25 218 查看
操作系统: AIX 6.1

前提:需有安装GCC,否则配置时GCC检查不会通过;

下载GCC的软件包:

ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/gcc/

gcc-4.2.0-3.aix6.1.ppc.rpm,

gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm,

libgcc-4.2.0-3.aix6.1.ppc.rpm,

libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm,

libstdcplusplus-devel-4.2.0-3.aix6.1.ppc.rpm

(1)用ftp将上述五个rpm文件上传到/usr/opt/freeware/src /packages/SOURCES目录下

(2)以root身份在/usr/opt/freeware/src/packages/SOURCES执行命令

# rpm -ivh gcc-4.2.0-3.aix6.1.ppc.rpm

[b]# rpm -ivh libgcc-4.2.0-3.aix6.1.ppc.rpm

# rpm -ivh libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm

# rpm -ivh libstdcplusplus-devel-4.2.0-3.aix6.1.ppc.rpm

# rpm -ivh gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm
[/b]

至此,成功安装GCC;

安装Memcache

使用文件

libevent-1.4.13-stable.tar.gz

memcached-1.4.5.tar.gz

编译 libevent-1.4.13-stable时候出现几个头文件错误,根据报错信息找到http-internal.h文件将其在的两行函数

nt evhttp_parse_firstline(struct evhttp_request *, struct evbuffer*);

int evhttp_parse_headers(struct evhttp_request *, struct evbuffer*);

修改为以下内容:

enum message_read_status evhttp_parse_firstline(struct evhttp_request *, struct evbuffer*);

enum message_read_status evhttp_parse_headers(struct evhttp_request *, struct evbuffer*);

接着又报select.c中fd_mask重复定义,打开select.c找到以下代码

/* This type is mandatory, but Android doesn't define it. */

typedef unsigned long fd_mask;

修改为:

/* This type is mandatory, but Android doesn't define it.

typedef unsigned long fd_mask; */

如果在安装过程中报regress_zlib.c错误,那说明系统没有安装zlib的软件包,需要下载并安装以下软件包:ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/zlib/

zlib-1.2.3-4.aix5.2.ppc.rpm

zlib-devel-1.2.3-4.aix5.2.ppc.rpm

经过上面的修改和软件安装,重新make,就可以正常通过了;

接下来编译memcached

编译过程中可能会报 thread_init 函数签名有冲突,修改下面3个文件

memcached.h

thread.c

memcached.c

将 thread_init 改成其他名字,如thread_init_memcached,这三个文件中一共有5个需要修改的地方,修改完成后重新编译,便可顺利通过;

启动:进入安装目录的bin文件

./memcached -d -m 256 -p 11211 -c 512 -P /tmp/memcached.pid 成功启动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安装 aix memcached 6.1