在mac操作系统中安装thrift不是非常顺利,历经好多个小时的时间,问题反反复复。特此记录中途遇到的问题及解决方法,有需要的朋友可以参考
问题1: error: Bison version 2.5 or higher must be installed on the system!
答:mac中默认安装的版本是2.3,我参考官网的安装步骤下载最新版0.18,至少需要2.5或以上的版本,故需要处理。
这里我参考的是: https://www.cnblogs.com/zhangyy3/p/9082908.html 作者的文章
可以通过如下方式解决,参考
https://stackoverflow.com/questions/10778905/why-not-gnu-bison-upgrade-to-2-5-on-macosx-10-7-3
brew unlink bison brew link bison --force重新link 之后还不好使,还得加一下环境变量,这个得看使用的哪个bash,我用的是zshrc, 在.zshrc 文件中加入以下代码(就是配置环境变量),然后source 一下。版本更新成功。
export PATH="/usr/local/opt/bison/bin:$PATH"source .zshrc bison -V
问题2: 使用brew直接安装一个是版本范围受限,另一个是并没有成功安装,寻找了很多资料包括maven插件但是依赖却在中央仓库找不到,最后去官网寻找答案
官网地址: Apache Thrift - Home
但上面会遇到一个 open-ssl的问题
问题3: fatal error: 'openssl/opensslv.h' file not found
我尝试了是第二种方法。 然后按照控制台提示的信息,又重新设置了环境变量
问题4:
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
问题5: Gem::Ext::BuildError: ERROR: Failed to build gem native extension
后来经过仔细寻找 发现有这样一篇文章可以选择性忽略,这个在正常官文中没有看到
最终还是有微小的错误,但是运行版本检查,已经可以出结果了。 小问题看看明天有其他的影响再编辑说明了。
---------
今天遇到了thrift编译后的java程序比系统本身的JDK版本高的问题
问题6: 类文件具有错误的版本 55.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中
系统中同时安装了高版本的JDK ,使用 /usr/libexec/java_home -V 查看默认版本 发现了问题
然后卸载了昨天的安装 通过重新指定对应的JDK版本 重新进行安装
./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local --without-ruby --without-php --without-go JAVAC=/usr/bin/javac
仍然存在问题,最终选择了降低版本至0.13版本
问题7:
------------
关于各种版本依赖的错误,实在处理不了。 再次寄托于brew工具
经过更新为了国内阿里源之后,并且降级之后,系统现运行不再报错。