简介
Thrift是Facebook的核心技术框架之一,使不同语言开发的系统可以通过该框架进行通信。开发者使用thrift提供的格式来定义数据和服务脚本。thrift可以通过定义的脚本自动生成不同语言的代码以支持不同语言之间的通信。thrift支持多种数据通信协议,比如xml,jason,binnary等等。
Thrift并不是唯一的跨语言通信框架,像google的protocol buffers也是与之类似的框架。关于两者之前的比较可以去股沟一下。
Trift安装
1.安装thrift所依赖的linux包autoconfautomakesysconftoolboost boost-devellibtoolbyacc flex bison这一步请根据相关系统进行按装,因为现在用的是red hat5服务器版,所以我直接从光盘里找rpm包直接安装通过rpm -ivh包名.rpm进行安装。
2.下载thrift的代码:http://incubator.apache.org/thrift/download/
3.解压代码包tar -zxvf thrift-0.2.0-incubating.tar.gz
4.拷贝thrift到安装目录cp -r thrift0.2.0 /usr/local/
5.cd/usr/local/thrift0.2.0 运行该目录下的./bootstrap.sh shell脚本。这一步你可能遇到这两种错误
错误一
[root@localhostthrift]# ./bootstrap.sh --enable-m4_pattern_allow
configure.ac:50:error: possibly undefined macro: AC_PROG_MKDIR_P
If this token and others are legitimate,please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:144:error: possibly undefined macro: AC_TYPE_INT16_T
configure.ac:145:error: possibly undefined macro: AC_TYPE_INT32_T
... ...
configure.ac:155:error: possibly undefined macro: AC_TYPE_UINT8_T
这个错误可以忽略,不影响使用。
错误二
required file`./ltmain.sh' not found
解决方法安装libtool包
6.运行 ./configure
7.运行 ./make这一步可能会遇到两个错误
错误一
libtool: compile: cannot determine name of library object from `':command not found
解决办法:libtool的问题,目前只在服务器上有这个问题
(1)卸载原服务器的libtool
(2)下载最新的libtool安装,wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz./configure;make;make install
(3)重新thrift安装步骤的第四步即可
错误二
编译java包出错,是由于没有链接网络不能maven所致,可以忽略,待以后用到java,进行手动编译。
8.安装完成,在终端输入thrift会提示thrift的用法,说明安装成功。
--------------------------------------------------------------------------------------------------------
以上是thrift早期版本的安装,下面对thrift0.8版本的安装(或升级)做简要记录: