2

最近発見されたセキュリティ上の欠陥を考慮して、Rails アプリを 3.2.3 から 3.2.11 にアップグレードしています。

Gemファイルを次のように更新しました: gem 'rails', '3.2.11' そして実行しましたbundle update rails

アップグレードを完了するために他に必要なことはありますか? 他の宝石もアップグレードする必要があるかどうかはどうすればわかりますか?

4

4 に答える 4

2

私も昨日からアップグレードし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 については、特に問題はありませんでした。

于 2013-01-10T09:55:48.123 に答える
1

これは確かに実行するソリューションの1つですbundle update railsが、この場合、gemの両方のバージョン(3.2.3と3.2.11(を実行して確認gem listできます))がインストールされているため、手動でアンインストールする必要があります。私はそれがより良いと思います:

  1. 現在のgemsetからインストールされているすべてのgemを削除します(rvmがない場合は、と大きな違いはないと思いますbundle update rails

    rvm gemset empty your_gemset_name

  2. Gemfileに記載されていない必要なすべてのgemをインストールします(おそらくrake、bundler、その他のgem)。たとえば、グローバルgemsetにすべてのgemがインストールされている場合、bundlerを含むすべてのgemが削除されるため、最初に再インストールする必要があります。

    gem install rake

    gem install bundler

  3. バンドラーの助けを借りて宝石をインストールする

    bundle install

  4. テストを実行する

  5. テストがコードの100%をカバーしていない場合は、機能を手動でチェックします

このようにして、不要な古いバージョンのgemを自動的に削除します。また、bundle installbundler中に、gemバージョンに不一致があるかどうかを通知します。

于 2013-01-10T22:04:46.357 に答える
0

今日もrails 3.2.11にアップグレードしています。gem ファイルを変更して実行した後、bundle update rails実行gem listしたところ、Rails 3.2.9 と 3.2.11 がインストールされていることがわかりました。また、クリーンアップが必要な他の宝石も見つけました。これらの古いバージョンのクリーンアップについて私が見つけた素晴らしい SO 投稿は次のとおりです: Uninstall old versions of Ruby gems

于 2013-01-11T04:33:36.873 に答える
0

私がレールを更新するとき、私はあなたと同じようにそれをします

gem 'rails', 'VERSION'

これで十分です。gem の依存関係について知るには、わからない場合は次の手順を実行します。

1

gem のページを確認してください (私の場合は、ほとんどが私がフォローしている git ページです)。

2

テスト ケースを実行して、新しい Rails バージョンに関連するエラーが発生するかどうかを確認します

3

ジェムを手動でテストします。おそらく、ページに 1 ~ 2 個の機能のジェムがほとんどない場合です。クリックするだけです。

あなたの場合、私はその小さな更新を言うので、あまり心配しないで、各宝石が何をしているのかを考えて、簡単なテストをしてください! gem が新しいレール バージョンよりも古いバージョンのレールを処理できないことがより一般的です。

于 2013-01-10T09:13:51.757 に答える