1、前言
Apache Thrift,它采用接口描述語言定義并創(chuàng)建服務,支持可擴展的跨語言服務開發(fā),所包含的代碼生成引擎可以在多種語言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等創(chuàng)建高效的、無縫的服務,其傳輸數(shù)據(jù)采用二進制格式,相對 XML 和 JSON 體積更小,對于高并發(fā)、大數(shù)據(jù)量和多語言的環(huán)境更有優(yōu)勢。
前段時間,花了將近3個小時才正確安裝thrift,特此記錄正確安裝過程,以幫助有需要的同學。
2、前提
本文假設(shè)你以正確安裝 brew,git
3、安裝過程
3.1、下載homebrew-core(任意目錄)
git clone git@github.com:Homebrew/homebrew-core.git
3.2、將代碼切換至對應版本
進入代碼目錄,查看0.9.2對應commit,并切換至該commit
cd homebrew-core
git log
git checkout 6ae86d4a56e63c29cc9260cbc340bad71e56bee8 -b version0.9.2.bottle
3.3、修改Formula/thrift.rb
修改 Formula/thrift.rb的27行,diff 如下
--- a/Formula/thrift.rb
+++ b/Formula/thrift.rb
@@ -24,7 +24,8 @@ class Thrift < Formula
bottle do
cellar :any
- revision 1
+ # revision 1
+ rebuild 1
3.4、安裝
brew install Formula/thrift.rb
3.5、查看版本
此時在任意位置輸入如下命令:
thrift -version
若能正確顯示 #顯示:Thrift version 0.9.2 則安裝成功
4、可能碰到的問題
下方提到的改動,均指 Formula/thrift.rb
4.1、Error: thrift: Unsupported special dependency :python
53行 改成 depends_on "python" => :optional
4.2、Failed to download resource "thrift" Download failed: https://www-us.apache.org/dist/thrift/0.9.2/thrift-0.9.2.tar.gz
發(fā)現(xiàn)是文件路徑已經(jīng)變了,第8行 改成 url "http://archive.apache.org/dist/thrift/0.9.2/thrift-0.9.2.tar.gz"
4.3、An exception occurred within a child process: NoMethodError: undefined method `j1' for #<Object:0x00000001010c2180>
直接把這個注釋了,78行 # ENV.j1
4.4、Error: undefined method `undent' for #<String:0x0000000102c5b900>
忽略即可,此時已經(jīng)安裝成功
5、最后
Thrift各版本之間不兼容,很是影響用戶體驗。但由于其高效、跨語言的特性,仍在企業(yè)中有大量應用。如果你跟我一樣,那么此時本機已經(jīng)正確安裝Thrift,酣暢淋漓的使用它吧