RubyGem バージョンのダウングレード

RubyGem バージョンのダウングレード

コマンドをsudo rake db:migrate実行すると、以下のエラー メッセージが表示されました。

rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)

RubyGem のバージョンが予想よりも新しいようです。RubyGem のバージョンをダウングレードするにはどうすればいいでしょうか?

答え1

確かに、RubyGems の「新しすぎる」バージョンは、一部の古いアプリケーション (主に Rails 2.x を使用しているアプリケーション) では問題になる可能性がありますが、投稿されたエラー メッセージは別の原因を示しているようです。アプリケーションでは特定のバージョンの Rack gem が必要であり、インストールしたバージョンはその要求に適合していない可能性があります。

アプリケーションは rack ~> 1.1.0 を要求します。この条件は、1.1.0、1.1.5、1.1.345 などの 1.1.x シリーズのどのバージョンにも一致しますが、1.2.0 や 2.0.0 には一致しません。Rack を 1.4.1 にインストールしたようですが、これは条件 ~> 1.1.0 に一致しません。

幸いなことに、同じgemの異なるバージョンを並べてインストールすることができます。インストールしたRackのバージョンを確認するには、

gem list -l rack

そのリストには、ローカルにインストールされた (-l スイッチのため) 名前が 'rack' で始まる gem が表示されます。そのリストには、おそらく 1.1.x シリーズのバージョンは含まれていません。

特定のバージョンのgemをインストールするには、--version=xyzオプションを使用します。

gem install rack --version=1.1.0

おそらく、移行はこれで完了するでしょう。

実際にRubyGemsをダウングレードする必要がある場合は、まず、ダウングレードしたいバージョンにRubyGems gem ( :D )をインストールする必要があります。これは、上記で行ったのと同様です。

gem install rubygems-update --version=x.y.z

その後、「アップデート」(あなたの場合はダウングレード)を実行できます。

gem update --system x.y.z

ここで、xyz は必要なバージョン番号です。特定のバージョンへの「更新」は RubyGems 1.5.1 で導入されたため、それより低いバージョンにダウングレードすることはできないことに注意してください。

関連情報