Ruby on Railsを使用するのに、どのバージョンのRubyを使えばいいのか

Ruby on Railsを使用するのに、どのバージョンのRubyを使えばいいのでしょうか。

Ruby 1.8.4以前は、「任意のコードが実行される脆弱性」があるため、使用できません。
Ruby 1.8.5は、「任意のコードが実行される脆弱性」の修正時にバグが混入しているため、使用できません。
Ruby 1.8.6とRuby 1.8.7は、「任意のコードが実行される脆弱性」の修正時に混入したバグが修正されており、使用可能です。

使用できるのは、Ruby 1.8.6かRuby 1.8.7のどちらかになります。

次にRuby on Railsとの相性の問題があります。

Ruby on Rails 2.0.2 Ruby on Rails 2.1.0
Ruby 1.8.6
Ruby 1.8.7 ×

Ruby on Rails 2.0.2を使用するならRuby 1.8.6、Ruby on Rails 2.1.0を使用するならRuby 1.8.7がいいでしょう。

どちらを使うか迷ったら、とりあえずはRuby 1.8.6を使えばいいと思います。
近い将来、バージョンアップが必要になるかもしれませんが。

追記
Ruby on Rails バージョン2.1以下にはセキュリティホールが見つかっています。
詳しくは、「Ruby on Railsを使うならバージョン2.2以上を使おう」をご覧ください。

コメント

  1. ご無沙汰してます。

    Rails向けに開発されているRuby Enterprise Editionも現在は1.8.6ベースですね。

    http://www.rubyenterpriseedition.com/

    デプロイ環境がPassenger + Ruby Enterprise Editionというケースもこれから増えてくるでしょうから、Ruby Enterprise Editionにあわせるという戦略もアリかと思います。

  2. こんにちは。
    本家よりもサポート期間が長いのであれば、Ruby Enterprise Editionはいい選択肢かもしれませんね。

  3. すいません質問になるのですが、
    「Ruby 1.8.5は、「任意のコードが実行される脆弱性」の修正時にバグが混入しているため」とありますが、
    どんなバグが混入されていたかご存知でしたら、教えてもらえないでしょうか。
    また、そのバグは、Ruby1.8.6のどのパッチバージョンで修正されているか、ご存知でしょうか。

  4. > 「Ruby 1.8.5は、「任意のコードが実行される脆弱性」の修正時にバグが混入しているため」とありますが、どんなバグが混入されていたかご存知でしたら、教えてもらえないでしょうか。
    [ruby-list:45240] から始まるスレッドをお読みください。
    http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45240

    [ruby-list:45248] で、次のようにあります。
    http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45248

    >>> 一般の人(*)には、今回の 6/20 のリリースで、こういうバグが入り込んでしまっ
    >>> たことも、それが既に修正済であることもわからないってことも問題なのかと。
    >>
    >> うーん、どうしましょうねぇ。他にもそういうバグがあるんですが、
    >> 1.8.5はすでにメンテナンス終了ということになってしまっているんで
    >> すよね。
    >
    > 1.8.5は私はもうやる気がありません。オフィシャルに面倒見る人がいなくなっ
    > たので終了という話なので、他にやる人が出てくればまた再開するのはありなん
    > じゃないでしょうか。

    > また、そのバグは、Ruby1.8.6のどのパッチバージョンで修正されているか、ご存知でしょうか。

    [ruby-list:45317]かな。
    http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45317
    ruby-1.8.6-p286でしょうか。

  5. Pingback: 山本隆の開発日誌

  6. Pingback: 山本隆の開発日誌

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください