今天在安装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依赖时就花了很长时间,将近一个小时,不过这和网速也有关系。后面在安装其他依赖时就快很多了,如果顺利的话,几分钟之内应该就能搞定了。