参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误:

#编译安装安装magent到 /usr/local/magent 下

cd /usr/local/
mkdir ./magent
cd ./magent
wget -c http://memagent.googlecode.com/files/magent-0.6.tar.gz
tar xzvf ./magent-0.6.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
make
cp ./magent /usr/bin/magent

执行到 make 的时候,

报错1:

gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
magent.c: In function 'writev_list':
magent.c:729: error: 'SSIZE_MAX' undeclared (first use in this function)
magent.c:729: error: (Each undeclared identifier is reported only once
magent.c:729: error: for each function it appears in.)
make: *** [magent.o] Error 1

解决方案:

vim ./ketama.h 
#在开头加入
#ifndef SSIZE_MAX
#define SSIZE_MAX      32767
#endif

继续make

报错2:

gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o ketama.o ketama.c
gcc -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a 
gcc: /usr/lib64/libevent.a: No such file or directory
gcc: /usr/lib64/libm.a: No such file or directory

解决办法:

ln -s /usr/lib/libevent*  /usr/lib64/

继续make

报错3:

gcc -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a 
gcc: /usr/lib64/libm.a: No such file or directory
make: *** [magent] Error 1

解决办法:

yum install -y glibc glibc-devel

如果是64bit的系统则不会在/usr/lib64/libm.a 生成,如果是32bit即会有。所以,在64位机器中,还必须:

\cp /usr/lib64/libm.so /usr/lib64/libm.a

继续make

报错4:

gcc -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a 
/usr/lib64/libevent.a(event.o): In function `detect_monotonic':
event.c:(.text+0xc79): undefined reference to `clock_gettime'
/usr/lib64/libevent.a(event.o): In function `gettime':
event.c:(.text+0xd60): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make: *** [magent] Error 1

解决办法:

vim ./Makefile

CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64)
改为:    
CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)

继续make

make 
\cp magent /usr/bin/magent


最后,安装汇总:

1、在ketama.h中加入 

vim ./ketama.h

#ifndef SSIZE_MAX 
#define SSIZE_MAX 32767 
#endif

2、安装依赖库

yum install -y glibc-devel 
\cp /usr/lib64/libm.so /usr/lib64/libm.a 
ln -s /usr/lib/libevent* /usr/lib64/

3、编辑Makefile 

vim ./Makefile

CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 
修改为 
CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)

4、重新编译

/sbin/ldconfig 
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile 
make 
\cp magent /usr/bin/magent

CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总的更多相关文章

  1. Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解

    当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...

  2. CentOS6.3编译安装Memcached

    要用到如下源码包: /usr/local/src/memcached/libevent-2.0.21-stable.tar.gz /usr/local/src/memcached/memcached- ...

  3. CentOS6.3编译安装Memcached的PHP客户端memcache

    在安装Memcached的PHP客户端memcache之前,可先看下先前的工作笔记: PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展? 安装PHP的memcache扩展 cd /us ...

  4. 在centos6.5中安装zookeeper集群

    简介 ZooKeeper服务器是用Java编写创建,它运行在JVM.所以需要使用JDK 6或更高版本,在这里就不说在centos安装jdk环境了,直接进入正题,我搭建的是 192.168.0.2, 1 ...

  5. 【PHP升级】CentOS6.3编译安装 PHP5.4.38

    先前安装的PHP5.3.28(参考:CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28),现在准备升级PHP到5.4.38,有如下几个地方需要重新编译 ...

  6. CentOS7 安装Hbase集群

    继续接上一章,已安装好Hadoop集群环境 http://www.cnblogs.com/dopeter/p/4612232.html 在此基础上继续安装Hbase集群 Hbase版本为1.0.1.1 ...

  7. Centos6.6 安装Mysql集群

    一.环境准备 1.1系统IP设置 准备三台服务器安装Centos6.6 64位操作系统,IP地址及角色分配如下: Node                 IP Address            ...

  8. Hadoop安装教程_集群/分布式配置

    配置集群/分布式环境 集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slav ...

  9. memcached集群安装与测试

    1.上传安装包 libevent-2.0.22-stable.tar.gz memcached-1.4.24.tar.gz 2.安装libevent 创建目录 mkdir -p /apps/insta ...

随机推荐

  1. MooseFs-分布式文件系统系列(三)之MFSclient端的使用

    Web界面监控MFS状态 mfscgiserv 是用python写的一个web服务器,监听端口是9425,必须在master(管理服务器上)上启动 常用的参数如下: | 参数| 作用| |:--| : ...

  2. TreeMap按照key排序

    package test.tool.gui.common; import java.util.Comparator; import java.util.TreeMap; public class Te ...

  3. angularjs $q、$http 处理多个异步请求

    angularjs $q.$http 处理多个异步请求 在实际业务中经常需要等待几个请求完成后再进行下一步操作.但angularjs中$http不支持同步的请求. 解决方法一: $http.get(' ...

  4. uC/OS-II类型定义

    /*************************************************************************************************** ...

  5. Windows7-32bit系统安装MySQL-5.5.39-win32.msi服务图解

    下载mysql-5.5.39-win32.msi安装文件,双击运行,出现如下界面. mysql安装向导启动,按“Next”继续 在 I accept the terms in the License ...

  6. jar tvf study.war jar命令查看war/jar包的内容

    jar tvf study.war 0 Thu Oct 20 14:01:18 CST 2016 META-INF/ 137 Thu Oct 20 14:01:16 CST 2016 META-INF ...

  7. wampserver 2.5安装pear win8.1

    集成环境的悲伤啊~ 本来看到pear想试试 结果发现根本没有go-pear.bat 自己的环境 都是 系统win 8.1 php 5.5.12 mysql  5.6.17 apache 2.4.9   ...

  8. 【转】SPDY协议

    SPDY协议 - v3 原文:SPDY Protocol - Draft 3 翻译:邱鹏滔(QQ: 95350530,主页:www.fireflysource.com) 1 概述 HTTP协议的瓶颈在 ...

  9. sqlmap注入检测经验0x01

    某日偶遇一SQLInjection Point,MSSQL 2008,已开启显错模式. 马上扔进SQLMap跑,一路顺畅,竟然还是SA的权限,心想运气真好,无论如何都拿定了. 数据库,表,列都列出来了 ...

  10. 工具,百度编辑器 UEditor 使用实例化

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...