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項目。