天天看點

mac下安裝thrift踩坑

今天在安裝thrift的時候有種回到了當初剛開始學程式設計的那種狀态,配個環境折騰老半天。本來就在idl裡面改動了3行代碼,想重新生成一下,确認了該項目之前使用thrift 0.10.0生成後,不得不将已經安裝的thrift 0.12.0換掉。

本來想用brew install thrift簡單安裝一下的,但是brew search thrift之後發現隻有0.9.0版本的,于是不得不下載下傳源碼,手動編譯。有了這個念頭之後,後面的2個多小時基本打水飄了,編譯時各種報錯,解決一個又來一個,還遇到一個網上都查不到的問題,最後實在不行放棄了。總之,由于現有環境的問題,手動編譯很費勁,還不一定能搞定。

說了這麼多,就是想表達——極力不推薦手動編譯安裝。下面介紹的方法還算靠譜(相關參考來自于這裡),在我的Mac上親測有效。

如果下面這兩條指令不出錯的話,就不用往下看了。

brew unlink thrift
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/16ebe5f1843e6cb54856311ff0f676be53007329/Formula/thrift.rb
           

如果報下面的錯:

Error: thrift: Unsupported special dependency :python
           

它的解決方法是:

1、将Homebrew克隆下來(這一步有點慢,因為這個倉庫比較大,有308MB)

$ git clone https://github.com/Homebrew/homebrew-core.git
           

2、檢出thrift更新到0.11.0版本之前的最後一次送出

$ cd homebrew-core 
$ git checkout 16ebe5f1843e6cb54856311ff0f676be53007329
           

3、注釋掉報錯的那一行

$ vim ./Formula/thrift.rb
在第35行,将 depends_on :python => :optional 改為 
# depends_on :python => :optional
           

4、再次安裝

$ brew install ./Formula/thrift.rb
           

上面這個指令的執行時間可能有點長,因為要裝一些依賴,我這邊在安裝boost依賴時就花了很長時間,将近一個小時,不過這和網速也有關系。後面在安裝其他依賴時就快很多了,如果順利的話,幾分鐘之内應該就能搞定了。