Mac|Mac 安装thrift指定版本(0.9.2)

1、前言 Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。
前段时间,花了将近3个小时才正确安装thrift,特此记录正确安装过程,以帮助有需要的同学。
2、前提 本文假设你以正确安装 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
发现是文件路径已经变了,第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 #
直接把这个注释了,78行 # ENV.j1
4.4、Error: undefined method `undent' for #
忽略即可,此时已经安装成功
5、最后 【Mac|Mac 安装thrift指定版本(0.9.2)】Thrift各版本之间不兼容,很是影响用户体验。但由于其高效、跨语言的特性,仍在企业中有大量应用。如果你跟我一样,那么此时本机已经正确安装Thrift,酣畅淋漓的使用它吧

    推荐阅读