程序员技术文档

Mac 安装thrift指定版本(0.9.2)

2018-11-24  本文已影响10人  沈渊

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 #<Object:0x00000001010c2180>

直接把这个注释了,78行 # ENV.j1

4.4、Error: undefined method `undent' for #<String:0x0000000102c5b900>

忽略即可,此时已经安装成功

5、最后

Thrift各版本之间不兼容,很是影响用户体验。但由于其高效、跨语言的特性,仍在企业中有大量应用。如果你跟我一样,那么此时本机已经正确安装Thrift,酣畅淋漓的使用它吧

上一篇下一篇

猜你喜欢

热点阅读