接口测试 记录关于 OSX El Capitan 安装 Thrift 碰到的一些坑。

Arthur.Ren · 2017年03月15日 · 938 次阅读

最近在做一些 Thrift 接口自动化测试的一些工作,碰到要搭建 Thrift 环境。当时有几个选择:

  1. 用 Docker,在 docker 里玩,这样可以直接开始,也屏蔽了 Thrift 安装中的那些麻烦。
  2. 用虚拟机,在虚拟机里面用 Centos 来玩,Thrift 官方文档对 Centos 的描述也最详尽。出问题的几率小。
  3. 在自己的 MAC 上下载 Thrift 源码安装。这是我当时选择的方式,也因为此,踩了些坑。特别是 OSX El Capitan 对安全机制做了些改变,好多步需要手工做些调整。

闲话不多说,直接开始讲 OSX El Capitan:

  1. 我首先打开的http://thrift.apache.org/docs/install/。 上面有个 OSX Install 的直达链接(http://thrift.apache.org/docs/install/os_xBasic)。所以我毫不犹豫进去了。。。记住:这个时候最好先继续看看下面的 “ Requirements” 和 “Requirements for building from source“部分!否则装 Boost 和 libevent 的时候会发现一堆的包依赖不存在。 解决方法,用 Homebrew 大法把相关的依赖包都打上 (brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config)
  2. Openssl include 路径问题,接下来在 configure 的时候一直提示 openssl include 找不到。我看了目录下 openssl 的相关 include 文件好好放在/usr/local/Cellar/openssl/1.0.2k/include 目录下。然后上网找了很久,有人提示需要 brew link --force openssl,试过了,还是不 work。后来的解决方案是: 直接把 openssl 的 include 目录添加到系统的缺省 INCLUDE Search PATH 中去(因为新的 OSX El Capitan 把 openssl 从缺省 library 中移除了)。
  3. make install 提示无权在/usr/lib/XXX 下创建目录。是因为新的 OSX El Capitan 修改了安全设置,不管是 sudo 还是普通用户都无权在/usr/lib 下创建目录了。可是我看了 thrift 目录下的 Makefile* 文件,里面的 prefix 都是指向/usr/local/lib。为啥还会出现问题呢?后来打开 debug 后,发现在 thrift/lib/xxx 等目录下的 Makefile* 文件中还存在 prefix 指向/usr/lib 的情况(猜是 configure 的 bug)。手动修改后成功通过。

这些坑,说起来还是因为环境问题导致。如果我选了前面两种方式,也许都不会出问题。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册