源码安装scribe的bug说明和解决方案

上篇文章写的是基于FreeBSD的Scribe安装配置和数据分析,其实我不建议用Linux,尤其是CentOS,哪怕Ubuntu Gentoo都可以在半小时内解决问题,在CentOS下安装Scribe真是噩梦一场。我相信很多想在centos下安装scribe的人都遇到了不可思议的问题而放弃。

如果你只会使用CentOS,那好吧,我给你解决方案。

目前在CentOS 5.4-5.7下可用,要求是64位系统

yum或编译安装以下软件:Python 2.4。boost,boost-devel需1.33,libxml2,libxml2-devel mono-devel ruby,ruby-devel,curl,curl-devel,gcc-c++,automake,autoconf,m4,pkgconfig,bison,zlib,zlib-devel,bzip2,bzip2-devel,flex。

boost的安装就是非常痛苦的过程,scribe会出现找不到BOOST_ROOT的情况。

目前情况下,FreeBSD的ports已经将fb303和scribe列为损坏和不可安装。事实上,如果你是下载的github最新版的scribe和apache foundation thrift的源码包,是根本没法编译的。

问题不在于你系统里依赖包和版本,而在于,根本就是这两个软件C++源码的问题。

通过对scribe和thrift源码的阅读,得出以下结论。两款软件的namespace不一样,导致了软件无法编译通过,特别是在fb303的源码中。

scribe的C++源码中,对namespace的定义是

scribe::thrift:: ...
facebook::scribe:: ...

而由于thrift作为apache项目迁移到apache后,源码中的namespace facebook::thrift被改成了apache::thrift了。这点,从fb303的头文件FacebookService.h,fb303_type.h等文件中中得到了充分的体现,而scribe编译,又必须引用这些头文件。所以,编译错误就不可避免了。

现在,我给出终极解决方案,绝无问题。

RPM

http://down.51cto.com/data/283091

访问这里下载安装包,scribe在Centos下的终极解决方案,无论centos版本高低,只要依赖库齐全,直接rpm -ivh即可使用。并且均是目前最新版,7z压缩,解压后有三个文件,按照fb303 0.7.0-1,thrift 0.7.0-1,Scribe 2.2-3顺序安装即可。

安装后,配置文件在/etc/scribe.conf,用service scribe start启动。

祝大家使用愉快。

本文出自 “实践检验真理” 博客,转载请与作者联系!

你可能感兴趣的:(linux,thrift,centos,rpm,scribe)