解决Linux下安装thrift出现的Building Java Library ........ : no问题(以及其他安装thrift出现的问题)

来源:互联网 发布:中国社交网络排名 编辑:程序博客网 时间:2024/05/21 09:58

在之前的服务器上搭的thrift很正常,但换个机器重新搭一遍就会发现这个问题。thrift版本为1.8.0


网上搜了一下,一个解决方案是要安装ant和ivy,但这台服务器有ant没ivy,之前的服务器也没有ivy。所以感觉应该不是这个的问题。

另一篇文章是因为出现了Exception in thread "main" java.lang.NoClassDefFoundError: configtest_ax_javac_and_java,最后发现是classpath的问题。而我这边没出现Exception这样的异常。


首先怀疑是java的问题,把java从1.6更新到了1.7,然而之前的服务器上的版本就是1.6,一切正常。查看config.log发现有一个地方不一样:正常的是--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre,而出问题的这边版本号要低一些,于是搜索了一下替换方法,顺便发现一个没接触过的linux命令:alternatives,详见这篇博文:使用alternatives替换jdk版本

然而也不是这个问题。。。


于是我打开了configure的代码,发现有个have_java标志位,需要java和ant同时运行正常的时候才会被设置为true,而且java出错的时候会有一些输出,这些我都没在config.log中看到。于是只能怀疑ant了。上面写着ant版本需要大于1.7,然而这个机器上的ant,居然没有-version参数。。。那台正常的机器上输入ant -version输出的是Apache Ant version 1.7.1 compiled on August 24 2010

看来是ant的问题了,于是下了个新版本ant,在~/.bash_profile设置了ANT_HOME,然并卵。。

需要修改/etc/ant.conf中的ANT_HOME,改了之后还是没用。

在/usr/bin目录下执行 ln -s -f ant_install_path/apache-ant-1.8.4/bin/ant,然后再ant -version,就成功了!

重新configure thrift,出现了Building Java Library ........ : yes!


在更新版本之后又出现了无法识别C++ library的问题,这里可能需要更新gcc的版本,机器上原来gcc的版本是4.1.x,过期太多了,重新安装了4.7.x问题就解决了(注:安装gcc首先要安装gmp、mpfr、mpc,可以直接./contrib/download_prerequisites,自动下载并配置

然后c++ library识别正常了,然而make的时候又出错了:'TLSv1_1_method' was not declared in this scope,这是因为Openssl的版本太低了,换到1.0.1g就没问题了(更高一点的没有试)

注意在./config make make install之后,Openssl的版本仍然没有更改,需要更改一下软链接,这样就没问题了。

然后是新的错误。。version `GLIBCXX_3.4.11' not found, version `GLIBCXX_3.4.9' not found, version `GLIBCXX_3.4.15' not found

位于/usr/lib64下的libstdc++.so.6版本太旧了,从高版本机器上拷一个过去就没问题了。可通过strings /usr/lib64/libstdc++.so.6 | grep "GLIBC" 查看

若出现gen-cpp/.deps/ChildService.Plo: No such file or directory这样的十来行错误,修改thriftpath/lib/cpp/test/Makefile.am和thriftpath/test/cpp/Makefile.am,把其中的$(RM) -r gen-cpp/改为$(RM) gen-cpp/*

error: '::malloc' has not been declared

各种追踪,安装automake、autoconf、pkg-config(glib、libffi[yum install libffi-devel]),又尝试安了好多东西,然而这服务器就是各种出错装不上thrift0.9.3,最终决定还是降低thrift的版本了。。



0 0
原创粉丝点击