升级PostgreSQL至14.5后Rails项目启动报错求助
解决PostgreSQL升级后Rails启动时charlock_holmes依赖icu4c库缺失的问题
问题根源
升级PostgreSQL 14到14.5时,Homebrew自动升级了依赖的icu4c库(从70.x版本更新到71.1),但项目中使用的charlock_holmes gem是基于旧版icu4c编译的,导致启动Rails时找不到对应的libicudata.70.dylib库,触发LoadError。
解决方案
方法1:重新编译charlock_holmes gem
这是最直接的修复方式,让gem适配当前系统的icu4c版本:
- 卸载旧版本gem:
gem uninstall charlock_holmes - 针对bundle管理的项目,使用
pristine命令重新编译:
或者手动指定icu4c路径重新安装:bundle pristine charlock_holmesgem install charlock_holmes -- --with-icu-dir=$(brew --prefix icu4c)
方法2:重新编译所有带原生扩展的gem
如果还有其他gem出现类似依赖问题,可一次性重新编译所有bundle管理的原生gem:
bundle pristine
方法3:临时回退icu4c版本(不推荐)
如果暂时无法重新编译gem,可安装旧版本icu4c并强制链接:
brew install icu4c@70 brew link icu4c@70 --force
⚠️ 注意:此方法可能导致其他依赖新版icu4c的软件出现问题,仅作为临时应急方案。
内容的提问来源于stack exchange,提问作者Aitzaz
相关产品推荐
相关产品推荐

