升级到最新版本的rails时,我遇到以下错误,乘客拒绝启动。
The application encountered the following error: You have already activated stringio 3.0.0, but your Gemfile requires stringio 3.0.8. Since stringio is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports stringio as a default gem. (Gem::LoadError)
查看安装的gems版本,只定义了
stringio (default: 3.0.0)
。
在我的 gemlock 文件中我们现在有
psych (5.1.1.1) stringio
和
stringio (3.0.8)
我的堆栈支持团队针对此问题提出的一个建议是将 gem 'stringio', '3.0.0' 放入 gemfile 中并强制它使用此版本。
这对我来说感觉不对,而且是我以前从未做过的事情
问题:
我遇到了同样的问题,并尝试了我能想到的一切...重建 Passenger Docker、更新捆绑器、手动删除
stringio
gem(这是不允许的,因为它是默认 gem)。
我想出的唯一有效的解决方案是更新我的项目的
Gemfile
以明确要求 Passenger Docker 默认使用的 stringio
版本。
对我来说,这意味着编辑 ./Gemfile 添加:
gem "stringio", "3.0.1"
我同意你的观点,这感觉像是一个质量非常低的解决方法,可能会在未来产生更多的维护开销。