thrift多平台安装

系统 2144 0

thrift支持多语言的RPC,一直都想深入学习了解thrift,最近有空,就上网查了些资料,学习了一下,对它的使用有了一些了解。本篇是写thrift的安装,使用方法会另起一篇来写。

本文使用thrift的版本是0.9.1。

 

1.windows平台安装

直接下载编译好的exe文件,就可以使用了。

下载链接在 这里

新建目录,C:\Program Files\thrift,把下载好的thrift-0.9.1.exe文件放在里面。把C:\Program Files\thrift添加到windows下面的环境变量,如下图

thrift多平台安装

现在使用thrift官网的例子来试试thrift是否正确安装。

example.thrift文件里面的内容是:

      
              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文件夹,里面就是我们需要的代码文件了。

thrift多平台安装

大家可以试一下其他语言,例如go,js,php,cpp。

到这里,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项目。

 

 

thrift多平台安装


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论