Help us understand the problem. What is going on with this article?

【完全版】MacでRails環境構築する手順の全て

この記事は

初心者でも迷わず環境構築ができるよう、1つ1つの手順を丁寧に解説した記事です。
なるべく「どうしてこのコマンドを実行するのか」も解説するようにしています。

「環境構築が苦手、よくわからない」という方は、ぜひ参考にしていただければと思います。
また「railsのバージョン指定がうまくいかない...」と悩んでいる方にも参考になると思います。

※もしこれを読んでもうまくいかなければ、ぜひ積極的にコメントいただけますと幸いです!

マシンスペック

参考までに、私のマシンスペックは以下の通りです。

  • macOS Catalina 10.15.3
  • MacBook Air (Retina, 13-inch, 2018)
  • Intel Core i5
  • メモリ 8GB

Ruby, Railsのバージョン

それぞれ下記バージョンで構築することを目指します。

  • Ruby 2.5.7
  • Rails 5.2.3

全体の流れ

この順番でインストールしていきます。

  1. rbenv(Rubyのバージョン管理ツール)
  2. Ruby
  3. PostgreSQL(データベース)
  4. Rails

構築手順

1. rbenvのインストール

rbenvとは、Rubyのバージョンを簡単に切り替えてくれるツールです。

1台のPCで複数のRailsアプリを作ろうとしたとき、「こっちのアプリではRuby2.5.0を使いたいけど、こっちはRuby2.6.0を使いたい...」という欲求が出てきたりします。
そんなときに活躍するのがrbenvです。
詳しい使い方は後で見ていくとして、まずはインストールしてしまいましょう。

rbenvをインストールするためにはHomebrewが必要で、HomebrewをインストールするためにはCommand Line Toolsが必要です。
順番に進めていきます。

1-1. Command Line Toolsのインストール

ターミナルを開き、次のコマンドを実行します。

# Command Line Toolsのインストール
$ xcode-select --install

Xcodeというツールをインストールしていない場合は「インストールしますか?」という画面が表示されるため、「インストール」を選択します。
Xcodeは重いので、少し時間がかかるかもしれません。

インストール完了後、次のコマンドでバージョンが表示されたら成功です。

# バージョン確認
$ xcodebuild -version

1-2. Homebrewのインストール

続いてHomebrewをインストールします。
Homebrewの公式サイトに飛ぶとインストール用のコマンドが用意されてるので、それをターミナルに貼り付けて実行するだけです。
コマンドは随時アップデートされたりするので、直接サイトから持ってくるのが賢明です。

ちなみにHomebrewとは、Macにデフォルトで入っていないソフトをインストールするためのツールです。
上の画像を見ると、「Appleが用意していないあなたの必要なものをインストールします」と書いてありますが、噛み砕くとそういうことです。
Homebrewを入れておくといろいろインストールできて便利なんだな、と理解しておけば大丈夫です。

1-3. rbenvのインストール

いよいよrbenvのインストールを行います。
ターミナルで次の4つのコマンドを順番に実行してください。

# (1) rbenvへのPATHを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

# (2) rbenvを使うために必要な「rbenv init -」コマンドを設定
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# (3) 設定の反映
$ source ~/.bash_profile

# (4) rbenvのインストール
$ brew install rbenv ruby-build

(4)では、rbenvと一緒に、rbenvのプラグインであるruby-buildもインストールしています。
rbenvについて詳しく知りたい方は、こちらのブログで詳しく紹介されていますので読んでみてください(ただ、初学者には難易度高めです)。

このrbenvを使って、Rubyをインストールしていきます!

2. Rubyのインストールとバージョン適用

2-1. Rubyのインストール

rbenvでインストールできるバージョンは下記コマンドで確認できます。

# rbenvでインストールできるバージョンを確認
$ rbenv install --list
#=> Available versions:
#   1.8.5-p52
#   1.8.5-p113
#   ...
#   truffleruby-19.2.0
#   truffleruby-19.2.0.1

今回は2.5.7をインストールします。

# Ruby2.5.7をインストール
$ rbenv install 2.5.7

これでRuby2.5.7がインストールされたはずです。
次のコマンドを打ってみましょう。

# インストール済みのRubyのバージョン一覧を表示する
$ rbenv versions
#=> * system (set by /Users/<ユーザ名>/.rbenv/version)
#     2.5.7

これは、system(Macのデフォルト)と2.5.7の2種類のRubyバージョンがPCにインストール済みであることを示しています。
2.5.7もインストールできたことがわかりますね。
ちなみに「*」がついている方が、現在の環境に適用されているバージョンです。

2-2. 作業ディレクトリの作成&移動

続けて作業ディレクトリ(フォルダ)を作成します。
作業ディレクトリの名前は「sample_app」や「workspace」などがよくありますが、作成するアプリ名にするとわかりやすいでしょう。
ここでは私が作成したアプリ名「cooklog」とします。

作業ディレクトを作成します。

# 作業ディレクトリを作成
$ mkdir ~/cooklog

ここまでは「ターミナルにおいてどのフォルダでコマンドを打つか」は気にしなくてよかったですが、ここからは作業フォルダに入ってコマンドを打っていくことになります。
そこで、ディレクトリへの移動を行います。

# 作業ディレクトリへ移動(適宜パスを指定)
$ cd cooklog

2-3. Rubyのバージョンを適用

それでは作業ディレクトリに対してRuby2.5.7を適用します。
先ほど作ったディレクトリにいることを確認して、次のコマンドを実行します。

# 現在のディレクトリにRuby2.5.7を適用
$ rbenv local 2.5.7

# 適用を反映
$ rbenv rehash

これで作業ディレクトリに適用するRubyのバージョンが変わったはずです。確認してみましょう。

$ ruby -v
#=> ruby 2.5.7p206 (2019-10-01 revision 67816) [x86_64-darwin19]

$ rbenv versions
#=>   system (set by /Users/<ユーザ名>/.rbenv/version)
#   * 2.5.7

Rubyのバージョンは、p206..以降が違っても問題ありません。
「*」2.5.7の方に移り、適用バージョンが変わったことを確認できました。

※ちなみにrbenv local x.x.xが現在のディレクトリのRubyバージョンを変更するのに対し、rbenv global x.x.xは使っているPCでデフォルトで使うRubyバージョンを指定します。
したがって、globalの方を使ってもOKです(今回は他のディレクトリへ影響することを避けるため、localにしています)。

2-4. bundlerのインストール

2章の最後に、gemのインストールには欠かせないbundlerをインストールしておきます。

まずはターミナルでbundler -vを実行して、bundlerがインストールされているか確認してみてください。

$ bundler -v
#=> Bundler version 1.17.2

上のようにbundlerのバージョンが表示されれば問題ありません。
「not found」と出るのであれば、次のコマンドでインストールしてください。

$ gem install bundler -v 1.17.3

※bundler 2.0.1以降をインストールしているとYou must use Bundler 2 or greater with this lockfile.という厄介なエラーに遭遇することが多々あるため、無難な1.17.3を推奨します(2020/3/8現在)。

3. PostgreSQLのインストール

続いてデータベースのインストールを行います。
今回はPostgreSQLを使うことにします。

次のコマンドを打ち込んで、インストールと起動を一気にやってしまいましょう。

# PostgreSQLのインストール
$ brew install postgresql

# PostgreSQLの起動
$ brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

4. Railsのインストール

ここからいよいよRailsをインストールしていきます。

次のコマンドでRailsをPC内にインストールします。

$ gem install rails -v 5.2.3

続けて、次のコマンドを打ち込んでRailsアプリの骨格を作成します。

# Railsアプリ作成(gemのインストールはスキップ)
$ rails _5.2.3_ new . -d postgresql --skip-bundle

途中、何か聞かれたら全てy(yesの意味)を打ってEnterを押せばOKです。
.はカレント(現在の)ディレクトリという意味です。
-d postgresqlはデフォルトのデータベースとしてPostgreSQLを使うという意味です。

--skip-bundleの部分がポイントで、これをつけるとgemのインストールは後回しにしてRailsアプリに必要なファイルだけを先に作ってくれます。

次に作られたファイルの中のGemfileを開き、次のように書き換えます。

Gemfile
# 変更前
gem 'rails', '~> 5.2.3'
# 変更後
gem 'rails', '5.2.3'

'~> 5.2.3'は「バージョン5.2.3以上のものをインストールします」という意味なので、確実に5.2.3をインストールするためにこの変更を行います。

そして、次のコマンドを実行して各種gemをインストールします。

# 各種gemをインストール
$ bundle install --path vendor/bundle

※エラーが出たらこちらを参照

Railsのバージョンを確認し、きちんとインストールできていることを確認しましょう。

$ rails -v
#=> 5.2.3

最後に、Railsアプリを立ち上げるためにRailsサーバーを起動します。
※エラーが出たらこちらを参照

$ rails s
=> Booting Puma
=> Rails 5.2.3 application starting in development 
...(省略)...
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

上の感じになったらOKです。
http://localhost:3000/にアクセスしてみましょう。

スクリーンショット 2020-03-05 22.32.22.png

この画面が表示されれば、きちんとRailsアプリが立ち上がっています!
Rails 5.2.3Ruby 2.5.7が適用されていることがわかりますね。

これにて環境構築はおしまいです。

お疲れ様でした!

2020/3/7 追記

rails sActiveRecord::NoDatabaseErrorが発生した場合

「データベースが作られていません」というエラーなので、次のコマンドを打ってから再度rails sを実行してみてください。

$ rails db:create

2020/3/8 追記

bundle install --path vendor/bundleAn error occurred while installing pg (1.2.2)...というエラーが出た場合

こんなエラーが出たときの対処法です。

An error occurred while installing pg (1.2.2), and Bundler cannot
continue.
Make sure that `gem install pg -v '1.2.2' --source 'https://rubygems.org/'`
succeeds before bundling.

エラーメッセージを遡っていくと、次の箇所でエラーになっていることがわかりました。

./siteconf20200308-17435-1nm6sy1.rb extconf.rb
--with-pg-config=/path/to/pg_config
Using config values from /path/to/pg_config
sh: /path/to/pg_config: No such file or directory  # ここがエラー発生箇所
sh: /path/to/pg_config: No such file or directory
checking for libpq-fe.h... yes
(省略)
creating Makefile

つまり、pg_configが無いと言われています。
ググった結果、この記事をヒントに解決することができました。

ls /usr/local/binまたはls /usr/local/varを実行してみると、どちらかにpg_configがいると思います。
私の場合は前者で発見しました。

そこで、以下のコマンドを実行してpg_configの参照先を変更しました。

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

これで再度bundle install --path vendor/bundleを実行すると、エラーを解決することができました。

kodai_0122
Railsエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした