项目场景:

Java项目运行大多基于maven和thrift;尤其是当报错类型为:
程序包 org.apache.thrift.annotation 不存在
时,网上有一类说法是父项目和子项目的pom文件中关于thrift 的版本存在冲突;但我遇到的不是,很可能是自己点的电脑本地没有安装thrift导致的;


问题描述

安装thrift的教程,其实蛮多的:推荐这一个:https://cloud.tencent.com/developer/article/1451267;我最终安装成功使用的是这个方法。
但是Mac 从Catalina开始对系统文件的权限限制地很严格,在执行上面的方法过程中会遇到阻碍。下面直接说解决方案吧。

解决方案:

  1. 默认你电脑已经安装brew;

  2. 如果你想安装最新thrift,可以直接brew install thrift;如果想要安装特定的thrift版本,也可以直接碰碰运气,试试brew install thrift@0.11.0,但是我使用这个命令是不会安装成功的,会报错:
    奇怪的错误,就是找不到于是我们采取上面链接中的方法;

  3. brew install boost

    brew install openssl

    brew install libevent
    然后就是重头戏——升级bison版本;否则的话,后续的./configure命令执行后会显示报错:configure: error: Bison version 2.5 or higher must be installed on the system!
    brew install bison之后运行brew -V看看版本号,发现bison的版本依然是2.3;那怎么办呢:
    执行以下代码:
    bison -V
    brew unlink bison
    echo export PATH="/usr/local/opt/bison/bin:$PATH" >> ~/.bash_profile
    export LDFLAGS="-L/usr/local/opt/bison/lib"
    source ~/.bash_profile
    brew link bison --force

  4. 然后再brew -V发现bison系统版本还是2.3;但是现在已经不要紧了,可以去安装thrift了;首先在官网下载你需要的thrift版本:http://archive.apache.org/dist/thrift/;然后用terminal进入该文件夹(解压后的thrift-0.11.0),执行以下代码:
    tar -zxvf thrift-0.11.0
    cd thrift-0.11.0
    ./configure
    make
    make install
    这个时候执行./configure就不会报错了;

  5. 你以为就这么完了,在执行make install的时候又说什么Read-only system,大致意思是说没有系统权限,这时候猛一点,直接来个sudo make install;

  6. 备注:如果有什么Permission Denied之类的报错,可以在恢复模式的terminal下输入csrutil disable并回车,关闭SIP。(M1芯片电脑进入恢复模式方法为:重启后按住电源键直到出现Loading startup options...后放开电源键。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐