执行bundle install报Symbol not found: _rb_deprecate_constant如何解决
报错原因
该错误由etc-1.2.0版本与你当前使用的Ruby 2.6.5版本不兼容导致:_rb_deprecate_constant是Ruby 2.7及以上版本才引入的底层API,etc gem 1.0.0之后的新版本默认适配高版本Ruby,不再兼容已停止维护的Ruby 2.6系列版本。
解决办法
- 方案一:锁定兼容Ruby 2.6的etc gem版本。在项目Gemfile中添加版本限制声明:
保存文件后重新执行gem 'etc', '< 1.0.0'bundle install即可。 - 方案二:升级Ruby版本。若项目无强制Ruby 2.6的要求,将Ruby版本升级到2.7.0及以上稳定版,重装bundler后重新执行依赖安装即可解决兼容性问题。
- 方案三:卸载冲突的全局高版本etc gem。执行命令
gem uninstall etc -v 1.2.0,之后再执行bundle install,bundler会自动适配安装兼容Ruby 2.6的etc gem版本。
内容的提问来源于stack exchange,提问作者PhantomS
相关产品推荐
相关产品推荐

