thrift多平台安裝


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是否正確安裝。

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文件夾,里面就是我們需要的代碼文件了。

大家可以試一下其他語言,例如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項目。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM