使用Bundler与Gemfile时替代--ignore-dependencies的方案咨询
解决Bundler环境下rdoc依赖高版本psych导致崩溃的问题
1. 锁定psych兼容版本(最推荐)
既然问题根源是rdoc会自动拉取5.0.0及以上的psych版本,直接在Gemfile里把psych版本锁在兼容范围内就行,简单有效:
# 指定psych使用5.0.0以下的稳定版本 gem 'psych', '< 5.0.0' # 正常添加rdoc gem 'rdoc'
运行bundle install后,Bundler会自动协调依赖,优先用你指定的低版本psych,既满足rdoc的依赖要求,又不会触发崩溃问题。
2. 用本地已安装的gem(适合已手动搞定依赖的场景)
要是你已经通过gem install rdoc --ignore-dependencies手动装好了兼容的rdoc和psych,可以让Bundler只使用本地已有的gem,不远程下载新依赖:
bundle install --local
但要注意,得确保本地的gem版本完全匹配项目需求,否则可能出现依赖不兼容的情况。
补充说明
Bundler本身没有提供类似gem install的--ignore-dependencies配置项——毕竟它的核心就是管理依赖的完整性,强行忽略依赖很可能导致rdoc本身功能异常。所以优先用第一种锁定版本的方法,从根源解决问题更靠谱。
内容的提问来源于stack exchange,提问作者devcodes
相关产品推荐
相关产品推荐

