MacOS 12.6下安装treePL时brew测试出现Gem依赖构建失败如何解决?
解决Mac OS 12.6下treePL安装时Gem原生扩展构建失败的问题
1. 补全Xcode命令行工具及权限
原生扩展构建必须依赖完整的开发工具和头文件,先执行:
xcode-select --install
如果提示已安装,重置工具路径:
sudo xcode-select --reset
注意:打开Xcode,同意软件许可协议,等待组件更新完成——这步不做,头文件会无法被调用,导致后续构建失败。
2. 用rbenv管理独立Ruby环境
系统自带Ruby容易出现权限和依赖冲突,换用rbenv隔离环境:
- 安装rbenv和ruby-build:
brew install rbenv ruby-build
- 把rbenv加入shell配置(以zsh为例,bash用户替换成
.bashrc):
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc source ~/.zshrc
- 安装适配json 2.6.2的Ruby版本(推荐2.7.8):
rbenv install 2.7.8 rbenv global 2.7.8
验证版本:
ruby -v
3. 手动安装依赖Gem并指定参数
针对报错的几个Gem,逐个安装并指定必要的编译参数:
- 安装json 2.6.2(解决隐式函数声明报错):
gem install json -v 2.6.2 -- --with-cflags="-Wno-error=implicit-function-declaration"
- 安装msgpack(绑定brew安装的库):
gem install msgpack -- --with-opt-dir=$(brew --prefix msgpack)
- 安装unf_ext和hpricot:
gem install unf_ext hpricot
4. 重新安装并测试treePL
完成以上步骤后,重新安装treePL:
brew reinstall treepl
再执行测试命令:
brew test -v treepl
内容的提问来源于stack exchange,提问作者Hong
相关产品推荐
相关产品推荐

