最近発見されたセキュリティ上の欠陥を考慮して、Rails アプリを 3.2.3 から 3.2.11 にアップグレードしています。
Gemファイルを次のように更新しました:
gem 'rails', '3.2.11'
そして実行しましたbundle update rails
アップグレードを完了するために他に必要なことはありますか? 他の宝石もアップグレードする必要があるかどうかはどうすればわかりますか?
最近発見されたセキュリティ上の欠陥を考慮して、Rails アプリを 3.2.3 から 3.2.11 にアップグレードしています。
Gemファイルを次のように更新しました:
gem 'rails', '3.2.11'
そして実行しましたbundle update rails
アップグレードを完了するために他に必要なことはありますか? 他の宝石もアップグレードする必要があるかどうかはどうすればわかりますか?
私も昨日からアップグレードし3.2.3
ました。3.2.11
gem 'rails', '3.2.11'
確かに、実行する必要がありますbundle update rails
。
これによりGemfile.lock
、すべての新しい Rails 3.2.11 依存関係 (actionmailer、actionpack、activemodel、activerecord、activesupport など) で更新されます。
次に、仕様/テストを実行する必要があります。これで、準備完了です。
低いレール バージョンを必要とする他の gem については、特に問題はありませんでした。
これは確かに実行するソリューションの1つですbundle update rails
が、この場合、gemの両方のバージョン(3.2.3と3.2.11(を実行して確認gem list
できます))がインストールされているため、手動でアンインストールする必要があります。私はそれがより良いと思います:
現在のgemsetからインストールされているすべてのgemを削除します(rvmがない場合は、と大きな違いはないと思いますbundle update rails
)
rvm gemset empty your_gemset_name
Gemfileに記載されていない必要なすべてのgemをインストールします(おそらくrake、bundler、その他のgem)。たとえば、グローバルgemsetにすべてのgemがインストールされている場合、bundlerを含むすべてのgemが削除されるため、最初に再インストールする必要があります。
gem install rake
gem install bundler
バンドラーの助けを借りて宝石をインストールする
bundle install
テストを実行する
このようにして、不要な古いバージョンのgemを自動的に削除します。また、bundle install
bundler中に、gemバージョンに不一致があるかどうかを通知します。
今日もrails 3.2.11にアップグレードしています。gem ファイルを変更して実行した後、bundle update rails
実行gem list
したところ、Rails 3.2.9 と 3.2.11 がインストールされていることがわかりました。また、クリーンアップが必要な他の宝石も見つけました。これらの古いバージョンのクリーンアップについて私が見つけた素晴らしい SO 投稿は次のとおりです: Uninstall old versions of Ruby gems。
私がレールを更新するとき、私はあなたと同じようにそれをします
gem 'rails', 'VERSION'
これで十分です。gem の依存関係について知るには、わからない場合は次の手順を実行します。
gem のページを確認してください (私の場合は、ほとんどが私がフォローしている git ページです)。
テスト ケースを実行して、新しい Rails バージョンに関連するエラーが発生するかどうかを確認します
ジェムを手動でテストします。おそらく、ページに 1 ~ 2 個の機能のジェムがほとんどない場合です。クリックするだけです。
あなたの場合、私はその小さな更新を言うので、あまり心配しないで、各宝石が何をしているのかを考えて、簡単なテストをしてください! gem が新しいレール バージョンよりも古いバージョンのレールを処理できないことがより一般的です。