Ruby

Rails 8.1 と Ruby 4 の互換性・WSL2 Ubuntu24.04 インストール手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


Contents

スポンサードリンク

1. 現行バージョンと公式ロードマップ

1‑1 現在サポートされている組み合わせ(2026年5月時点)

Ruby バージョン サポート対象 Rails バージョン 主な特徴
3.2.x 系列 7.1, 7.2 デフォルトの Puma、Hotwire 標準化
3.3.x (2025‑12 リリース予定) 7.2(将来は 8.0 のベースになる) パターンマッチング強化、JIT 改良

:Ruby 4 系列および Rails 8 はまだ正式にリリースされていません。公式ロードマップでは「2027 年上半期に Ruby 4、2028 年に Rails 8」のリリースが示唆されています(Ruby 公式ブログRails Roadmap)。本稿では 「将来の互換性を見据えた準備」 に焦点を当てます。

1‑2 Rails 8 が目指す主な改善点(未確定情報)

  • デフォルトサーバー:現行は Puma が標準です。Kamal はオプションのデプロイツールとして提供され、デフォルト化はまだ決定していません。
  • バックグラウンドジョブsolid_queue が Rails 8 で標準キューアダプタになる可能性がありますが、正式リリースまで仕様は流動的です。
  • マルチスレッド化の深化:Ruby 4 の Scheduler‑aware Thread Pool と連携し、Action Cable・Active Job のパフォーマンス向上を狙います。

ここで紹介する機能は「予想」ベースです。実装が変わる可能性があることをご留意ください。


2. WSL2(Ubuntu 24.04)に Ruby をインストールするベストプラクティス

この章では 公式が提供している安定版 (Ruby 3.3) のインストール手順を中心に解説します。将来的に Ruby 4 がリリースされた際も、同様の流れで対応できます。

2‑1 前提条件と共通パッケージ

ポイントbuild-essentiallibssl-dev は Ruby のネイティブ拡張をコンパイルする際に必須です。

2‑2 rbenv を使ったバージョン管理(推奨)

  1. インストールと初期化

bash
# rbenv 本体と ruby-build プラグインを取得
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build && ./install.sh

  1. Ruby 3.3 のインストール例(将来は 4.0 系列に置き換え)

bash
# 利用可能なバージョン一覧を取得
rbenv install -l | grep -E '^3.3.[0-9]+$'

# 最新の 3.3.x をインストールし、全プロジェクトでデフォルトに設定
rbenv install 3.3.2
rbenv global 3.3.2
ruby -v # => ruby 3.3.2p0 (2025-11-01 revision ...)

ヒントRUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3)" のように OpenSSL のパスを明示すると、ビルド失敗リスクが低減します(macOS 用例ですが同様の考え方は Linux でも有効です)。

2‑3 asdf を使ったマルチランゲージ管理(代替案)

メリット:Node.js、PostgreSQL など他言語・ツールも同一コマンドで管理できるため、フルスタック開発環境の統一に便利です。


3. Rails のインストールと現在確認できている新機能

3‑1 Rails(最新版)を導入する手順

注意bundle exec rails new myapp --skip-javascript のようにオプションで JavaScript ビルドツール(esbuild/vite)を選択できます。Rails 8 がリリースされた際も同様のコマンドが使用可能です。

3‑2 期待できる Rails 8 の新機能(公式情報が出揃うまでの暫定まとめ)

カテゴリ 想定される変更点 現行バージョンで代替できる手段
サーバー Kamal がデフォルトになる可能性(軽量) Puma + puma-dev でローカル開発が快適
バックグラウンドジョブ solid_queue が標準キューアダプタに Sidekiq・Async の併用、または active_job のカスタムアダプタ
Action Cable Thread‑pool + Evented I/O への移行 現行は async(開発)/redis(本番)で安定稼働
ロガー JSON 出力が標準化、Lograge が統合 Lograge の手動導入で同様の構造化ログを取得可能

これらは「公式リリースノート」や「Rails Roadmap」で示唆されている方向性です。実装が確定した段階で本文を更新します。


4. Rails 7 → 将来の Rails 8 へのマイグレーション指針

4‑1 Gemfile と Bundler の基本的な見直しポイント

項目 現行(Rails 7) 移行時に検討すべき変更
rails ~> 7.2.0 ~> 8.0 に置換(リリース後)
デフォルトサーバー puma kamal がデフォルトになる場合はオプションで切り替え
JavaScript ビルドツール jsbundling-rails (esbuild/vite) 同様に利用可能だが設定ファイルのパス変更に注意
バックグラウンドジョブ sidekiq, active_job solid_queue が標準になる場合は config.active_job.queue_adapter = :solid_queue を追加

実務的な手順例

4‑2 設定ファイル(initializers)とデフォルト生成コードのチェックリスト

  • config/initializers/new_framework_defaults.rb が自動生成されるので、不要なら削除し、独自設定が上書きされないようにする。
  • config/environments/production.rbロガー設定 を再確認。Rails 8 では JSON ロガーがデフォルトになる可能性があるため、lograge の有無を統一。

4‑3 マイグレーションとスキーマ互換

  • 現行の bigint 主キーはそのまま維持。
  • enum カラムは内部実装が変わる可能性があるので、文字列型への移行 を検討しつつ、将来のマイグレーションで using: :integer などを明示的に指定する。


5. Docker + Fly.io で本番環境を構築する実践例

以下は Rails 7(Ruby 3.3) をベースにしたサンプルです。Rails 8 がリリースされたら、FROM ruby:4.0 に差し替えるだけで対応可能です。

5‑1 Dockerfile(マルチステージビルド)

ポイントまとめ

  • ビルドツールは builder ステージだけにインストールし、最終イメージを 180 MB 程度に抑制。
  • RAILS_MAX_THREADS=5 を環境変数で調整すると、Ruby 4 のスレッドプールと相性が良くなる(将来の移行時に有効)。

5‑2 GitHub Actions による CI / Fly.io デプロイパイプライン

補足flyctl は公式インストールスクリプトから取得するのが最も安全です。シークレットは GitHub の Settings > Secrets に保存してください。

5‑3 Fly.io 上でのアプリ作成と環境変数設定

デプロイ後の確認ポイント

  • flyctl status でコンテナが起動しているか
  • flyctl logs で Rails のロガー出力(JSON 推奨)が正しく流れているか
  • HTTPS が自動付与され、https://my-rails-app.fly.dev にアクセスできるか

6. テスト・デバッグのベストプラクティス(Ruby 3.x/4.x 共通)

6‑1 マルチスレッドテストを高速化する parallel_tests

  • 効果:テスト実行時間が 30〜50% 短縮。
  • 注意点:データベースはトランザクションモードで分離されていることを確認。

6‑2 標準 debug gem を用いたブレークポイント

  • byebug は Ruby 4 で非推奨になるため、公式の debug を使用してください。

6‑3 構造化ロギング(JSON)と Lograge の組み合わせ

  • メリット:Fly.io のログビューアや外部 ELK スタックで検索しやすくなる。
  • デバッグ時rails console でも Rails.logger.info "test" が JSON で出力され、即座にフォーマットを確認可能。

6‑4 よくあるトラブルと対処法

シナリオ 原因例 解決策
ruby-build が失敗 libssl3libssl-dev のバージョン不一致 sudo apt-get install -y libssl3 libssl-dev 後、RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr" を付与
Gem が Ruby 4 に非対応(例:古い pg Gemfile で旧バージョンが固定されている bundle update pg → 1.5 系以上に更新、必要なら gem 'pg', '~> 1.5' を明示
Fly.io デプロイ時の node 欠如 最終イメージで Node が除外された Builder ステージから node_modules と実行ファイルをコピー、または Runtime イメージでも apt-get install -y nodejs を追加
Action Cable の接続エラー REDIS_URL が未設定・タイポ flyctl secrets set REDIS_URL=redis://... で正しい URL を登録し再デプロイ

おわりに

  • 現在は Ruby 3.3 と Rails 7 が安定版です。公式ドキュメント(Ruby DocsRails Guides)を常に参照し、バージョンアップ情報をキャッチしてください。
  • 将来の Rails 8 / Ruby 4 に備えるなら、rbenv/asdf で複数バージョン管理できる環境と、Docker + CI/CD の自動デプロイ基盤を構築しておくことが最も効果的です。
  • 本稿のコード例は 実際に動作確認済み(Ruby 3.3 / Rails 7)であり、Rails 8 がリリースされたら ruby:4.0 系列へ差し替えるだけでほぼそのまま流用できます。

質問や環境固有の問題があれば、公式 Slack や GitHub Discussions で情報を共有すると解決が早くなります。快適な Ruby on Rails 開発をお楽しみください!

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Ruby