今までCloud9を使ってRails開発をちょこちょこしていました。
今回は、イチからやってみようということでCloud9を使わずにプロジェクト作成をすることにしました。
①Homebrewのインストール
Macユーザー限定ですが、まずはHomebrew
のインストールを行います。
公式に書いてある通りにスクリプトを実行すれば、問題ないはずです。
バージョンが表示されれば、うまくインストールされています。
$ brew -v
Homebrew 2.2.6
②rbenvのインストール
Rubyのバージョン管理ができるようにrbenv
のインストールを行います。
$ brew install rbenv ruby-build
次にパスを通します。
なぜかというと、MacデフォルトのRubyを使わずにrbenvでインストールしたRubyを使用するためです。
MacデフォルトのRubyは、/usr/binというところに入っているのですが、rbenvでインストールしたRubyは、/Users/ユーザー名/.rbenv/shims/に入ります。
そのため、ターミナルからRubyを実行するときに、rbenvの中のRubyでRubyを実行するように切り替えをする必要があります。
$ echo 'export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile //.bash_profileを読み込む
eval “$(rbenv init -)”
を.bash_profile
ファイルに書いて読み込みすることによって、Macにログインしたら、Rubyコマンドを実行するときはrbenv内のRubyを実行するように設定しておくができます。
➂Rubyのインストール
ここでようやくRubyのインストールを行います。
まずは、インストール可能なバージョンを確認します。
$ rbenv install --list
今回は、2.7.0
をインストールします。
$ rbenv install 2.7.0
// 環境全体の有効なバージョンを2.7.0にする
$ rbenv global 2.7.0
$ rbenv rehash
$ ruby -v
④Bundlerのインストール
次に、Bundler
のインストールをします。
Bundler
とは、gemの依存関係とバージョンを管理するためのツールです。
Bundler
を使うと、依存関係のあるgemを一括でインストールしてくれます。
一括でインストールしたgemはすべて、依存関係が解決された状態で、インストールされます。
$ gem install bundler
$ bundle -v
⑤Railsプロジェクトの作成
ここで、プロジェクトを作成します。
作成したプロジェクトの中で、bundle init
を行います。
$ mkdir ~/testApp
$ cd ~/testApp
$ bundle init
成功すれば、Gemfileが作られているはずです。
Gemfileとは、インストールしたいgemを列挙するものです。
ただ、このままだと使えないので、Gemfileを編集する必要があります。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails" ←コメントアウトを外す
システムのgemはできるだけクリーンに保ち、gemはvendor/bundle
に入れてbundle exec
で呼び出すのがいいそうなのでそうします。
$ bundle install --path=vendor/bundle
$ bundle exec rails -v
Rails 6.0.2.1
--path vendor/bundle
オプションを付けることで、プロジェクトのvendor/bundle
以下にgemが格納されます。
次回以降はオプションを付けなくてもvendor/bundle以下に格納されるはずです。
プロジェクト別にgemをインストールすると、プロジェクトごとのgemのバージョンの違いを気にすることがなくなります。
最後に、Railsプロジェクトを作成します。
$ bundle exec rails new . -B --skip-test
.
を付けると現在のディレクトリに作成されます。
少しだけオプションの説明をすると、-B
はRailsプロジェクト作成時にbundle installを行わないようにします。
また、--skip-test
はデフォルトのminitestというテストを使わない時に付ける。他のテストフレームワークを利用したい時に使うといいです。
他のオプションはドキュメントを参考にするといいと思います。
プロジェクトにいる状態で、下記コマンドを実行して、http://localhost:3000/ へアクセスします。(サーバー起動)
$ rails server
Railsの画面が表示されれば、成功です。

Cloud9はそこまで意識せずにプロジェクトが作れちゃうので、楽ですね!
ただ、環境構築で何が行われるのかを知るという意味ではやってみるのもいいかもしれません。
また、実際の開発現場でCloud9を使ってというのはあんまりないと思うので、できた方がいい気がします。
補足
Rails6からWebpacker
がデフォルトでインストールされます。
なので、Webpacker
やyarn
をインストールしないとサーバー起動時に失敗する場合があります。
その場合は、インストールしましょう。
// yarnを先にインストールしないとwebpackerをインストールできない
$ brew install yarn
$ rails webpacker:install