安装charlock_holmes 0.7.7失败,bundle install无法完成求助
解决charlock_holmes 0.7.7在Ruby 2.6+环境下安装失败的问题
问题原因
charlock_holmes 0.7.7是较旧版本,与Ruby 2.6及以上版本存在兼容问题;另外brew安装的icu4c库不在系统默认搜索路径内,编译原生扩展时无法找到依赖文件,这两点共同导致安装失败。
解决办法
1. 直接指定icu4c路径安装gem
执行以下命令,让gem明确定位到icu4c的安装位置(brew会自动适配Intel和M1芯片的路径):
gem install charlock_holmes -v '0.7.7' \ --with-icu-dir=$(brew --prefix icu4c) \ --with-cppflags=-I$(brew --prefix icu4c)/include \ --with-ldflags=-L$(brew --prefix icu4c)/lib
2. 带环境变量执行bundle install
如果需要通过bundle install完成全依赖安装,可在命令前注入环境变量:
CPPFLAGS="-I$(brew --prefix icu4c)/include" LDFLAGS="-L$(brew --prefix icu4c)/lib" bundle install
3. 升级charlock_holmes版本(项目允许的话)
若项目的依赖限制不严格,建议将Gemfile中的charlock_holmes版本升级到0.8.0及以上,新版本已修复与Ruby 2.6+的兼容问题,无需额外配置即可正常安装。
内容的提问来源于stack exchange,提问作者Irwan
相关产品推荐
相关产品推荐

