thrift支持多语言的RPC,一直都想深刻学习了解thrift,最近有空,就上网查了些资料,学习了一下,对它的使用有了一些了解。本篇是写thrift的安装,使用方法会另起一篇来写。php
本文使用thrift的版本是0.9.1。python
1.windows平台安装linux
直接下载编译好的exe文件,就可使用了。git
下载连接在这里github
新建目录,C:\Program Files\thrift,把下载好的thrift-0.9.1.exe文件放在里面。把C:\Program Files\thrift添加到windows下面的环境变量,以下图apache
如今使用thrift官网的例子来试试thrift是否正确安装。bootstrap
example.thrift文件里面的内容是:ubuntu
struct UserProfile { 1: i32 uid, 2: string name, 3: string blurb } service UserStorage { void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) }
使用命令,thrift-0.9.1 --gen erl example.thrift来产生erlang的代码文件。从下图能够看出,它会在目录下面产生一个gen-erl文件夹,里面就是咱们须要的代码文件了。windows
你们能够试一下其余语言,例如go,js,php,cpp。centos
到这里,windows下面的thrift安装就完成了。
2.debian/ubuntu下面源码编译安装thrift
源码编译安装就是麻烦一点,首先要安装thrift的依赖包。
主要参考Debian or Ubuntu setup, 以及Building from source
安装依赖:
apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
在ubuntu 13.04或者更高版本可使用下面命令来安装全部依赖包:
apt-get build-dep thrift-compiler -y
安装erlang包,编译须要启用erlang支持:
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb dpkg -i erlang-solutions_1.0_all.deb apt-get update apt-get install erlang
在debian平台可能会报错:
证书全部者与主机名 “packages.erlang-solutions.com” 不符
可使用下面命令来下载
wget --no-check-certificate -c https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
在安装的过程当中,输入wheezy。
erlang-solutions的erlang版本版本是最新的,并且能够根据你的linux系统来设置软件源,更新erlang包方便不少。
使用git下载thrift源码
git clone -b 0.9.1 https://github.com/apache/thrift thrift-0.9.1
特地使用git下载,而不是直接下载apache打包好的tar包,是由于apache在打源码包的时候,出现了一些其余问题。[O]Ubuntu 13.10 thrift-0.9.1 安装 介绍到这个问题。我本身也是遇到了这个坑,才会使用这个方法下载源码。
./bootstrap.sh ./configure --with-cpp=no --with-python=no
make
make check
make install
上面configure不启动cpp以及python支持,缘由有2个:
缘由1,在make check段,老是报错,通不过测试。我发现部分缘由是有些测试代码缺失,没完成,例如变量没填上。对于没有经过测试用例的代码,我本身老是持怀疑态度。
缘由2,我本身没使用cpp以及python。
固然,若是你不关注测试用例,你能够直接make && make install
编译安装完毕后,在/usr/lib/erlang/lib/thrift-0.9.1里面就是thrift对erlang语言的代码支持包。里面有thrift的erlang代码,你们能够看看。
使用thrift --gen erl example.thrift就能够产生咱们须要的代码文件。
3.centos安装thrift
在centos源码安装thrift 0.9.1版本麻烦,我本身是没有成功。
在CentOS setup介绍了centos的编译方法,我照着作,可是autoconf的版本不给力,比thrift要求的版本要低。可怜我使用的是centos 6.5,是最新的centos版本了,这可咋整?
在通过编译安装最新版autoconf折腾后,编译thrift仍是报错。我放弃编译了,改成直接使用其余人的二进制包。
centos的rpm包就是多,我搜索了n久,终于发现了下面这个连接,里面就有编译好的thrift包。
http://download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/
好,下载repo文件,直接下载安装thrift
cd /etc/yum.repos.d/ wget -c http://download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/home:jblunck:messaging.repo yum makecache yum install thrift
安装过程当中会要求你确认是否安装,这是由于包没有签名,没有关系,我直接回答y。
使用这种方法安装的thrift跟windows下安装的thrift差很少,只能产生多语言的代码文件,可是缺乏里面的语言的驱动代码文件。
至此,thrift的安装步骤完成,下篇会介绍如何根据thrift来写一个具体的erlang项目。