よく聞かれるので、クリーンインストールされたMacbookにRuby on Railsの開発環境を構築する方法を記載します。
概要
この記事では、以下のバージョンをインストールします。インストール時にバージョン指定を変えることも可能です。
- Ruby 2.6.3
- Rails 5.2.3
この記事のゴール
クリーンインストールされたMacから、この画面を表示するところまで進めます!
私が環境構築時に使ったmacOSのバージョンはこちらです。
Xcode
Xcodeをインストールします (App Storeから)
Xcodeの利用規約に同意します
Xcodeを起動、利用規約に同意し、Command + Q
で終了する
Homebrew
Homebrewをインストールするため、ターミナルを起動してコマンドを実行します
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
参考: https://brew.sh/
画像のようにInstallation successful!
と出ればOKです
もしXcode CLTがインストールできないというエラーが出る場合、こちらからXcodeに合ったバージョンのXcode CLTをダウンロードします(Command Line Tools for Xcodeを探す) https://developer.apple.com/download/more/
brewコマンドが使えることを確認します
brew --version
# => Homebrew 2.1.6
rbenv
Rubyのバージョンを選んで使えるようにするため、Homebrewを使ってrbenvをインストールします。次のコマンドを実行します。
brew install rbenv
rbenv --version
# => rbenv 1.1.2
Ruby (2.6.X)
rbenvでRuby 2.6.Xをインストールします
# インストール可能なRubyの一覧を表示(たくさん出ますが気にせず)
rbenv install --list
# 今回はなるべく新しい安定版(stable version)の2.6.3をインストールしてみます
rbenv install 2.6.3
# インストールされているrubyバージョンの一覧を確認しておきます
rbenv versions
# ログイン時に実行されるスクリプトでrbenvの初期化を行えるようにします
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# そのスクリプトをロードします
source ~/.bash_profile
rbenvで使用するrubyのバージョンを切り替えます
# バージョンの確認(デフォルトのrubyバージョンが出る)
ruby --version
# => ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
# 2.6.3を(グローバルで)有効にする
rbenv global 2.6.3
ruby --version
# => ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
Ruby on Rails
先ほど有効化したrubyのバージョンにおいて、gemを使ってRailsをインストールします。簡単です!たったこれだけ。
gem install rails -v 5.2.3
rails -v
# => Rails 5.2.3
(任意)PostgreSQL
PostgreSQLのインストール
PostgreSQLデータベースを使う場合はインストールします。(推奨。勉強目的などで特に使わない理由がなければ使いましょう!)
# まだインストールされていないことを確認します
postgres -V
# => -bash: postgres: command not found
# HomebrewでPostgreSQLをインストールします
brew install postgresql
postgres -V
# => postgres (PostgreSQL) 11.3
PostgreSQLのサービスを開始
ターミナルにこのように表示されている通り、サービスを開始する必要があります。2通りあります。
以下のどちらか一方を実行しましょう。
# サービスを開始し、次回からログイン時に自動起動にします(推奨。一手間減らしましょう)
brew services start postgresql
# 注意:上のコマンドだけでOK!
# または、今回だけ起動したい(次回は手動で起動したい)場合はこちらのコマンドを使います
pg_ctl -D /usr/local/var/postgres start
Railsを試す
Railsプロジェクトを作成
Railsプロジェクトを作成します。ここから分岐します。データベースや、テストフレークワークを指定します。
# railsプロジェクトフォルダを作りたいフォルダへ移動
cd ~/Desktop
以下のコマンドからいずれかを1つを選択し、test_rails
または test_rails_api
プロジェクトを作成します。
# 以下いずれか
# Rails+PostgreSQL+Minitest(選択に困ったらまずこれ)
rails new test_rails --database=postgresql
# Rails+SQLite+Minitest
rails new test_rails
# Rails+PostgreSQL+Minitestなし(RSpecなどを使う場合)
rails new test_rails --database=postgresql --skip-test
# Rails(APIのみ)+PostgreSQL+Minitest
rails new test_rails_api --database=postgresql --api
# Rails(APIのみ)+PostgreSQL+Minitestなし(RSpecなどを使う場合)※私はこの構成
rails new test_rails_api --database=postgresql --skip-test --api
そのほか、細かいオプション指定をしたい場合はhelpを読むのが手っ取り早いです。
rails --help
Railsサーバーを起動
作成されたフォルダへ移動して、railsサーバーを起動します。
cd test_rails
# または
cd test_rails_api
rails s
早速、アクセス http://localhost:3000/
データベースが存在しないため、 FATAL: database "[データベース名]" does not exist
と表示されます。
真っ赤な画面でギョッとするかもしれませんが、心配ありません。
# いったんCtrl + Cでサーバーを止める(実際は止めなくてもOK)
# データベースを初期化
rails db:setup
# もう一度サーバーを起動
rails s
もう一度、アクセス http://localhost:3000/
トラブルシューティング
キャッシュなどが邪魔してエラーが出ている思われる場合はこちらのコマンドを実行します。同じ名前のプロジェクトを構成を変えて作ったり消したりを繰り返すと問題が生じることがあります。
spring stop