【macOS Sierra】Mac OSX 10.12 macOS Sierra にRuby + Rails4 開発環境の構築 【初心者必見】


[【El Capitan】Mac OSX 10.11 El Capitan にRuby + Rails4 開発環境の構築 【初心者必見】]
(http://qiita.com/keneo/items/1772adc2ebbde229fb71)

[【Yosemite】Mac OSX 10.10 Yosemite に Ruby + Rails4 開発環境の構築【初心者必見】]
(http://qiita.com/keneo/items/0a58b188183b5100e3af)

で、Yosemite、El Capitan でRails環境構築をまとめて、たくさんのストックをもらいました。もちろん、macOS Sierra でも手順を検証しました（結果、ほぼ以前と同様の手順でOKでした）ので、参考になればと思っています。

## 標準開発ツールのインストール

まずは、Apple標準の開発ツールのインストールをします。

### Xcode インストール
Mac App Store等でインストールします。

### Command Line Tools for Xcode
上部メニューから Xcode → Open Developer Tool → More Developer Tools
Downloads for Apple Developerページが開くので、そこのリストから”Command Line Tools(OS X 10.12) for Xcode 8”をダウンロードしてインストール


## Homebrewのインストール
Ruby, Railsに関連するソフトウェアはパッケージ管理システムの「Homebrew」を使用してインストールします。

###### Homebrewとは
>[パッケージ管理システム Homebrew](http://qiita.com/b4b4r07/items/6efebc2f3d1cbbd393fc)
>
>Homebrew（ホームブルー）とは、Mac OS X オペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつです。

###### Homebrew本体のインストール
```
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

###### path設定
```
$ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile
```

###### インストール確認
```
$ brew doctor
Your system is ready to brew.
```
※ パッケージ導入すると、いっぱいログが出てちゃんと導入できたかよくわかんなくなるので、brewのパッケージが正しく導入されているか、時々確認しておくと、いいみたいです。

###### 最新パッケージリスト取得
```
$ brew update
Already up-to-date.
```

## 便利なパッケージの導入
Ruby, Railsのインストールの前に導入しておいた方が良さそうなものを先にインストールします。

###### OSX標準のものでも多分大丈夫だだけど最新ものを導入
```
$ brew install git
```

###### irb(Interactive Ruby)を使用するためのパッケージ
```
$ brew install readline
```

###### httpsを使用するためのパッケージ
```
$ brew install openssl
```

##  ruby-build, rbenvのインストール

Rubyを使用する上で必須となっているバージョン切り替えツール「rbenv」をインストールします。（インストールにも使うからね）

###### rbenvでrubyをビルド・管理するためのパッケージ
```
$ brew install ruby-build
```

###### Rubyのバージョン切替ツール
```
$ brew install rbenv
```

###### rbenvとは
>[rbenv を利用した Ruby 環境の構築](http://dev.classmethod.jp/server-side/language/build-ruby-environment-by-rbenv/)
>
>複数バージョンの Ruby を切り替えるだけでなく、ローカルディレクトリ毎に Ruby のバージョンを指定できる「 rbenv 」がとても便利

###### path設定
```
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
```

## rubyのインストール
rbenvを使ってRubyをインストールします。

###### 公開されているrubyのバージョン一覧を確認
```
$ rbenv install -l
```

ここで最新のバージョンがわかるので、それを指定（ここでは安定版2.2.3）

###### インストール
```
$ rbenv install 2.2.3
```

###### 標準で使うrubyのバージョンを切り替える
```
$ rbenv global 2.2.3
```

###### 確認
```
$ rbenv versions
  system
* 2.2.3 (set by /Users/daisuke/.rbenv/version)
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
```

## Ruby on Railsのインストール
いよいよRailsのインストールです。

###### インストール
```
$ gem install rails
```

###### Bundlerインストール
```
$ gem install bundler
```
###### Bundlerとは
>[Bundlerを使ったGemパッケージの管理](http://www.rubylife.jp/rails/ini/index2.html)
>
> **Gemパッケージとは**
>
> まずはGemパッケージの簡単な解説です。
>
>Rubyで使われるライブラリやアプリケーションはGemと呼ばれる形式のパッケージにすることができます。多くのライブラリがGem形式でパッケージされ公開されており、これらはRubyGemsと呼ばれるパッケージ管理ツールを使ってダウンロードを行なったりインストールすることができます。これらのパッケージのことを単にGemとかGemパッケージなどと呼んだりします。
>
> **Bundlerとは**
>
>Railsのアプリケーション開発を複数のPCで行なおうとした場合を考えてみます。プログラムファイルはもちろんですが、全てのPCで対象のアプリケーションで使用しているGemパッケージをインストールしておかなければなりません。またGemパッケージのバージョンも揃える必要があります。
>
>そこで使われるのがBundlerです。BundlerはRailsアプリケーションに必要となるGemパッケージの種類やバージョンを管理し、複数のPCで必要なGemパッケージをインストールする仕組みを提供してくれます。

###### インストール後の反映
```
$ rbenv rehash
$ source ~/.bash_profile
```

###### 確認
```
$ rails -v
Rails 5.0.0.1
```

## サンプルアプリの作成
せっかくなので簡単な動作確認をしてみましょう。

```
$ rails new sample
$ cd sample
$ rails g scaffold Twitter tweet:string
$ rake db:migrate
$ rails server
```

これでrailsが単独で立ち上がっている状態なので、

[http://localhost:3000](http://localhost:3000)

でrails自体にアクセス可能です。

[http://localhost:3000/twitters](http://localhost:3000/twitters)

で作成したサンプルアプリに。

## 追記
OSXのバージョンアップ時の開発環境構築の手順をまとめています。併せてどうぞ！

[【macOS Sierra】Mac OSX 10.12 macOS Sierra にAMP環境の構築【初心者必見】【続編】]
(http://qiita.com/keneo/items/8bee152aee75123b7a07)
[【macOS Sierra】Mac OSX 10.12 macOS Sierra にNode.js 開発環境の構築 【初心者必見】]
(http://qiita.com/keneo/items/08da941711a224b06700)


---
### 筆者参考
札幌圏でリモート開発、在宅勤務を中心としたシステム開発の会社を経営しています。

[ローラハウス](http://laurahouse.net)