2

我目前在版本 3.1.3 上运行我的 Rails 应用程序之一。我的 gemfile 总是列出:

gem 'rails', '3.1.3'

这工作得很好。为了迁移到 3.1.10,我将 Gemfile 更改为以下内容:

gem 'rails', '~> 3.1.10'

令人惊讶的是,当我在更改之后运行时,事情就中断bundle update rails了:

Bundler could not find compatible versions for gem "multi_json":
  In Gemfile:
    twitter (>= 0) ruby depends on
      multi_json (~> 1.3) ruby

    fnordmetric (>= 0) ruby depends on
      multi_json (1.2.0)

就像测试一样,我尝试将 gem 版本更改为'>= 3.1.0'并且没有任何 quims 安装,尽管它已经到了 3.2,我还没有准备好在这个特定的应用程序上。

有什么建议可以让这个东西在今天发布的 3.1.10 上运行以解决安全漏洞?

还有一个更新:

从 Rails 3.1.4 开始,我完全没有问题将 Gemfile.lock 藏起来。一旦我尝试转到 3.1.5+,这就是所有麻烦的开始。

4

2 回答 2

2

将您的 Gemfile 更改为

gem 'rails', '3.1.10'

然后尝试运行

bundle update

代替

bundle install

我看不到您的 Gemfile,但这应该允许捆绑程序尝试找到兼容的 Gem 匹配项。如果您对 Gem 修订进行了硬编码,您可能需要放松它并重复更新。祝你好运!

于 2013-01-17T14:18:43.350 回答
0

查看 gems,似乎 oauth2 列出了“multi_json ~> 1.0”,而 ActiveSupport 3.1.10 列出了“multi_json < 1.3, >= 1.0”作为依赖项,所以应该可以解决。我遇到了这样的奇怪现象并通过运行来修复它

gem uninstall <relevant gems>

然后bundle install再次运行。所以也许试试

gem uninstall oauth2 multi_json activesupport

然后bundle install

编辑

gem uninstall twitter multi_json fnordmetric
于 2013-01-09T00:29:35.260 回答