4

以前、RailsプロジェクトのGemfileでgemバージョンを変更しました。私はbundlerupdategemnameを実行しましたが、これにより、いくつかの依存関係のより最新のバージョンがインストールされました。

次に、古いバージョンのgemにダウングレードする必要があります。Gemfileでバージョンを元に戻し、bundler upgrade gemnameを再度実行します(そして、bundler installを適切に実行します)が、以前にアップグレードされたgem(依存関係)はまだ新しいバージョンです(gemだと思います)バージョンを指定しなかったので、最新のものを使用しているだけですか?)

これらの依存関係を、gemをアップグレードする前の状態にダウングレードする方法はありますか?

4

3 に答える 3

3

Gemfileでは、必要なバージョン番号を使用して、依存するgemをいつでも指定できます。これにより、バンドラーは依存関係を再評価し、必要に応じてダウングレードする必要があります。理想的ではありませんが、バージョンが分類されたら、将来的に指定されたgemを削除できるようになります。

于 2012-08-14T13:51:45.483 に答える
2

依存ジェムが指定していない場合、Bundlerは依存ジェムの最大バージョンを知ることができません。gemをダウングレードするとその依存関係が実際に変更されない限り、唯一の実際のオプションは、バージョン管理から以前のバージョンのgemfile.lockをチェックアウトすることです。そうでなければ、あなたはあなたがやろうとしていることをすることができません。Bundlerは、現在のgemfile.lockを尊重します。これは、ダウングレード時にgemの依存関係が変更されない限り変更されません。

于 2012-08-13T22:04:34.087 に答える
2

これをコメントとして付け加えていただろうが、評判のせいで出来ないので、誰かがこれを参考にしてくれるといいなと思います。

nmottが提案したこともしました。Gemfileに依存関係を追加するだけです。例: gem 'gem-name', '~> 1.5.0'

実行しますbundle update gem-name

次に、依存関係がダウングレードされたら、Gemfileからその行を削除し、元の状態のままにします。

于 2017-09-27T06:51:53.267 に答える