2

現在、Rails アプリケーションの 1 つをバージョン 3.1.3 で実行しています。私の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'3.2 に変更してみましたが、この特定のアプリケーションではまだ準備ができていません。

セキュリティの脆弱性に対処するために本日リリースされた 3.1.10 でこれを実行するための提案はありますか?

また、更新:

私は Gemfile.lock を隠して、Rails 3.1.4 から始めることにまったく問題はありません。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

gem を見ると、依存関係として 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 に答える