Ruby on Rails 6をUbuntuにインストールする方法|初心者向け環境構築ガイド

Ruby on Rails を Ubuntu に導入したいと思ったとき、初心者が最初につまずきやすいのは、Rails だけ入れれば終わりではないという点です。

実際には、Rails を動かすまでに次のような要素が関係します。

  • Ubuntu 側の開発用パッケージ

  • Ruby のインストール方法

  • Ruby のバージョン管理

  • gem / bundler の状態

  • Rails 本体の導入

  • Node.js や JavaScript 周辺

  • データベース

  • 権限や PATH の設定

特に Rails 6 は、最新の Rails 8 系とは前提が少し異なるため、**「今の Ubuntu に古めの Rails をどう安全に入れるか」**という考え方が大切になります。

この記事では、Ruby on Rails 6 を Ubuntu にインストールする方法を、できるだけ安全で再現しやすい手順で解説します。
単にコマンドを並べるだけではなく、なぜその手順にするのか、どこでつまずきやすいのか、既存アプリと新規アプリで何が違うのかまで丁寧に整理していきます。


まず理解しておきたいこと

Rails の公式ガイドでは、OS に最初から入っている Ruby は古いことが多く、そのままでは扱いづらいため、バージョン管理ツールを使って Ruby を入れる方法が案内されています。現行の公式 Ubuntu 手順では Mise を使う流れが紹介されています。

また、Rails のアップグレードガイドでは、Rails 6 は Ruby 2.5.0 以上が必要とされています。

ここで大切なのは、Rails 6 を入れたいという要件にも2種類あることです。

1. 新しく Rails 6 系のプロジェクトを試したい場合

この場合は、Rails 6 系が動く Ruby を入れて、Rails 6 を gem として入れる方法が取りやすいです。

2. 既存の Rails 6 アプリを動かしたい場合

この場合は、アプリ側の Gemfile.ruby-version に書かれている Ruby バージョンに合わせるのが最優先です。
Rails 6 は Ruby 2.5 以上で動きますが、実際のアプリは使用 gem の都合で、動く Ruby の範囲がもっと狭いことがあります。これは Rails 本体要件と、アプリ全体の依存関係要件が別だからです。Rails 側は Ruby 2.5+ であっても、個別アプリではさらに制約がある、という理解が重要です。


Ubuntu の前提

Rails の現行公式インストールガイドは、Ubuntu について 22.04 Jammy 以降を前提にしています。 Ubuntu 22.04 以降では、Ruby ビルドに必要な依存パッケージとして build-essentialrustclibssl-devlibyaml-devzlib1g-devlibgmp-devgit などが案内されています。

そのため、この記事でも Ubuntu 22.04 / 24.04 系を基本想定にします。


今回のおすすめ方針

今回は、次の方針で進めるのが扱いやすいです。

  • Ruby はシステム標準ではなくバージョン管理ツールで入れる

  • Ubuntu の必要パッケージを先に入れる

  • Ruby を確認してから Rails 6 をインストールする

  • 最後に新規アプリを1つ作って起動確認する

なお、Ruby のバージョン管理ツールとしては、現行の Rails 公式ガイドは Mise を案内しています。一方で、Ruby 開発では rbenv も広く使われています。rbenv の公式 README でも、Unix系で Ruby バージョンを切り替えるためのツールであり、プロジェクトごとに .ruby-version で Ruby を切り替えられると説明されています。

この記事では、公式ガイドに沿って Mise ベースで構築する方法を中心に書きます。後半で rbenv についても補足します。


1. Ubuntu の依存パッケージを入れる

まずは Ubuntu 側の開発パッケージを導入します。
Rails の公式 Ubuntu インストール手順では、次のコマンドが案内されています。

sudo apt update
sudo apt install build-essential rustc libssl-dev libyaml-dev zlib1g-dev libgmp-dev git

これらが必要な理由

Ruby は多くの場合、インストール時にネイティブ拡張やビルド処理を伴います。
そのため、コンパイラやヘッダファイル、OpenSSL 関連、YAML 関連などのビルド依存が必要になります。公式ガイドでも Ubuntu ではこれらを事前に入れる手順が示されています。


2. Mise をインストールする

公式ガイドでは、Ubuntu で Ruby を入れる手段として Mise が案内されています。

curl https://mise.run | sh
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc

Ubuntu で bash を使っているなら .bashrc に追記する形で問題ありません。
zsh を使っている場合は .zshrc 側に書きます。

確認

mise --version

バージョンが表示されれば OK です。


3. Ruby をインストールする

公式ガイドでは、Mise を使って Ruby をグローバルに入れる方法が紹介されています。ガイド中では mise use -g ruby@3 のような形が示されています。

Rails 6 自体の最低要件は Ruby 2.5.0 以上ですが、既存アプリを動かす場合はそのアプリ指定バージョンを優先してください。Rails 6 だからといって、どの Ruby 3 系でも必ず既存アプリがそのまま動くとは限りません。Rails 公式の要件はあくまで Rails 本体の最低条件です。

新規に Rails 6 を試したい場合の例

mise use -g ruby@3.0

既存プロジェクトに合わせたい場合の例

たとえば .ruby-version2.7.8 なら、

mise use -g ruby@2.7.8

のように合わせます。

確認

ruby -v
gem -v

Rails の公式ガイドでも、Ruby インストール後にバージョン確認する流れがあります。


4. Bundler を確認する

Rails アプリでは gem 依存関係管理に Bundler を使います。
Ruby に同梱されていることもありますが、必要に応じて更新しておくと扱いやすいです。

bundler -v

もし入っていなければ、

gem install bundler

で導入します。


5. Rails 6 をインストールする

ここで Rails 6 を明示的に入れます。
Rails のメジャーバージョンを固定したいので、-v で指定するのが安全です。

Rails 6.1 系を入れる例

gem install rails -v "~> 6.1.0"

Rails 6.0 系を入れる例

gem install rails -v "~> 6.0.0"

Rails ガイドのインデックスでも、Rails 6.0 は 2019年8月、Rails 6.1 は 2020年12月の系統として案内されています。Rails 6 系の中でも 6.0 と 6.1 は別ラインなので、既存案件に合わせるならどちらかを意識して選ぶ方が安全です。

確認

rails -v

たとえば

Rails 6.1.x

のように表示されれば成功です。


6. 新規 Rails 6 アプリを作って動作確認する

インストールできたら、実際にアプリを作って動作確認します。

rails _6.1.7_ new sample_app

または、6.0 系なら

rails _6.0.6_ new sample_app

のように、生成時にもバージョンを明示すると混乱を減らせます。

ディレクトリに移動します。

cd sample_app

7. データベースを準備する

Rails はデフォルトでは SQLite3 を使う構成が多いですが、Ubuntu に SQLite 開発ライブラリがないと bundle install や DB 作成で詰まることがあります。
そのため、必要に応じて SQLite 関連を追加で入れておくと安定しやすいです。

sudo apt install libsqlite3-dev sqlite3

その後、依存関係を入れます。

bundle install

DB を作ります。

bin/rails db:create

8. サーバーを起動する

bin/rails server

または短く

bin/rails s

ブラウザで

http://127.0.0.1:3000

へアクセスして、Rails の初期画面が出れば成功です。

Rails の Getting Started ガイドでも、Rails アプリを作成してサーバー起動する流れが基本として案内されています。


9. 既存 Rails 6 プロジェクトを動かしたい場合の手順

既存アプリを動かす場合は、新規アプリ作成よりも 既存プロジェクトの Ruby と gem を合わせること が重要です。

手順

1. プロジェクトへ移動

cd your_rails_app

2. Ruby バージョンを確認

次を見ます。

  • .ruby-version

  • Gemfile

  • Gemfile.lock

3. その Ruby を入れる

Mise なら

mise use -g ruby@2.7.8

のように合わせます。

4. Bundler を合わせる

Gemfile.lock の末尾に Bundler バージョンが書かれている場合があります。

5. 依存関係を入れる

bundle install

6. DB を作る

bin/rails db:create
bin/rails db:migrate

7. サーバー起動

bin/rails s

Rails のアップグレードガイドでも、Rails の変更は一気に進めず、バージョンを段階的に意識しながら進めることが勧められています。既存アプリでも、Ruby と Rails を別々に意識して合わせるのが安全です。


10. Rails 6 インストールでよくあるエラーと対処法

ここからは、Ubuntu で Rails 6 を入れるときによくあるトラブルを整理します。


エラー1: rails: command not found

主な原因

  • gem は入ったが PATH が通っていない

  • Ruby のバージョン管理ツールがシェルに反映されていない

  • 新しいシェルを開いていない

対処法

source ~/.bashrc
ruby -v
gem env

Mise や rbenv を使う場合、シェル初期化が反映されていることが重要です。Rails 公式ガイドでも、インストール後にシェル設定を読み込む手順があります。rbenv でも rbenv init によるシェル設定が必要です。


エラー2: Ruby のビルドに失敗する

主な原因

  • Ubuntu 側の依存パッケージ不足

  • OpenSSL などの開発ライブラリ不足

  • 古すぎる Ruby を新しすぎる Ubuntu で無理にビルドしている

対処法

まずは公式依存パッケージを入れ直します。

sudo apt update
sudo apt install build-essential rustc libssl-dev libyaml-dev zlib1g-dev libgmp-dev git

これは Rails 公式 Ubuntu 手順に沿っています。

もしそれでも失敗するなら、その Ruby バージョン自体が今の環境と相性が悪い可能性があります。特に既存 Rails 6 アプリで古い Ruby を指定されている場合は、この問題に当たりやすいです。その場合は、アプリ要件を見ながら Ruby バージョンを再検討する必要があります。


エラー3: Could not find sqlite3 など DB 関連で失敗する

主な原因

  • SQLite 開発ライブラリが不足

  • gem のネイティブ拡張に必要なライブラリがない

対処法

sudo apt install libsqlite3-dev sqlite3
bundle install

エラー4: node や JavaScript 関連で詰まる

Rails 6 は JavaScript 周りで Webpacker を使う構成が多く、Node.js が必要になるケースがあります。Rails のアップグレードガイドでも、Rails 6.0 では Webpacker がデフォルトの JavaScript コンパイラであると説明されています。

対処法の一例

Node.js を用意します。

sudo apt install nodejs npm

既存プロジェクトなら、

yarn install

が必要な場合もあります。


エラー5: Bundler バージョンが合わない

症状

Gemfile.lock に記載された Bundler バージョンと実行環境が合わず、bundle install が失敗することがあります。

対処法

必要バージョンを入れます。

gem install bundler -v 2.3.26

のように、Gemfile.lock に合わせます。

Si quieres conocer otros artículos parecidos a Ruby on Rails 6をUbuntuにインストールする方法|初心者向け環境構築ガイド puedes visitar la categoría Sisutemuunyo.

Go up