はじめに
Ruby on Railsの環境構築について、最低限必要なソフトウェアとインストールのコマンドについてまとめてみました。
Rails環境構築の全体像が掴むための記事となっています。
#環境構築に必要なソフトウェア用語について
railsの環境構築に必要なソフトウェアは下記に示すものになります。
・Xcode
・homebrew
・rbenv
・ruby
・gem
・rails
・bundler
それぞれの関係性は下図のようになっています。
![スクリーンショット 2020-04-05 18.56.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404519/d349345f-2286-f594-fe37-1b92c6fa0716.png)
Xcode
Apple社が開発・リリースしている、アプリケーション開発に特化したソフトウェアです。
###homebrew
MacOS X上でソフトウェアのインストールを単純化するためのパッケージ管理システムのことです。
わかりやすく言うと、ソフトウェアをインストールする際に、パッケージやライブラリの依存関係をうまいこと調整してインストールしてくれるシステムのことです。
ソフトウェアをインストールする前にこいつをインストールしておきましょう。
[homebrewとは](https://qiita.com/omega999/items/6f65217b81ad3fffe7e6)
rbenv
rubyのバージョンを切り替えるツール。
環境ごとやディレクトリごとにバージョンを切り替えることもできる。
###ruby
プログラミング言語のひとつ。オブジェクト指向型のスクリプト言語。
ちなみにスクリプト言語とは、javaやC言語のようにコンパイルすることが不要で、簡単に実行できる特徴を持った言語のことをいいます。比較的簡単に実装できるため、比較的取り組みやすいプログラミング言語になります。
gem
gemはある機能がパッケージされたものになります。
パッケージとは、プログラムの部品であり、便利な機能をひとまとめにしたものになります。
例えばユーザーログインシステムを作成するための機能がまとまったgemがあり、インストールすることで簡単にログイン機能を実装することができるようになります。
rails
rubyのフレームワークです。Webシステムなどを開発するための機能がまとまっているgemです。
rubyでは主にこのフレームワークを用いて開発が進められています。
###bundler
gemを管理するためのツールです。
gemをインストールする際に必要になります。
各ソフトウェアのインストール
Command Line Tools for Xcodeのインストール
まずはターミナルを開き、下記コマンドによりXCodeをインストールします。
```
$ xcode-select --install
```
###homebrewのインストール
homebrewの公式サイトからインストールを行いましょう。
https://brew.sh/index_ja.html
下図のようなホーム画面に入るかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404519/d928da0f-3efb-4129-fad7-180421c46dde.png)
このページに書かれているインストールのコマンドをターミナルに打ち込んでインストールを行いましょう。
rbenvのインストール
次にrubyのバージョンを管理するrbenvをインストールしましょう。
ちなみに「rbenv」の読み方はだいたい「アールビーエンブ」と呼ばれているようです。
確かではありませんが、
"rb"→ruby
"env"→environment(環境)
の2つをつなげてrbenvとなっていると思われます。
rubyの環境を整えると言う意味合いで使われているのであろうと推測できます。
インストールのコマンドは以下になります。
rbenvとともに、ruby-buildというrbenvのプラグインも同時にインストールしておきましょう。
```
$ brew install rbenv ruby-build
```
正常にインストールされたかどうかは
```
rbenv -v
```
を打ち込み、バージョンが確認できればOKです。
PATHを通す
ここでPATHの設定をしておきます。
PATHを通すとは、あるファイルの実行を、ファイル名を打ち込むだけで実行できるようにする設定です。
ファイルをターミナルから開く際には、そのファイルが置かれている場所のフルパスを打ち込むことが必要です。
しかし毎回毎回フルパスを書くのは効率が悪いですね。
そこでPATHの設定をしておくことでファイル名だけで実行ができるようになると言う仕組みです。
このことを「PATHを通す」といいます。
※参考記事
https://qiita.com/sta/items/63e1048025d1830d12fd
・rbenvのPATHを通すコマンド
```
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
```
・ターミナルを起動したときに自動的にrbenvを使用できるようにする設定
```
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
```
※参考記事
https://qiita.com/soarflat/items/d5015bec37f8a8254380
最後にsourceコマンドを打ち、ファイルを再読み込みしておきましょう。
```
source ~/.bash_profile
```
rubyのインストール
rbenvがインストールできたら早速rubyをインストールします。
先ほどインストールしたrbenvのコマンドを使い、バージョン管理しながらインストールを行っていきます。
rubyをインストールする前に、現在インストールできるrubyのバージョンを確認しておきます。
```
$ rbenv install -l
```
下図のようにインストール可能なバージョンが一覧で表示されます。(一部抜粋)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404519/4d692f2d-f66c-22f0-03b2-135cf9a0e26d.png)
それではインストールしたいRubyのバージョンを指定して実行します。今回はバージョン2.6.5をインストールすることにします。
```
$ rbenv install 2.6.5
```
こちらもインストールできたかの確認をしておきましょう。
```
ruby -v
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404519/d056369b-4e6b-5e80-e03b-fbe789938eae.png)
画像のように表示されればOKです。
###gemのインストール
下記の2つのgemをインストールしていきます。
・bundler
・rails
```
$ gem install bundler
```
今回はrailsの5.2.0のバージョンをインストールすることにします。
```
$ gem install rails --version="~>5.2.0"
```
こちらも
```
$ rails -v
```
によりインストール完了の確認をしておきましょう
最後にデータベースのインストール
最後にデータベースのインストールをして環境構築は終了です!
今回はよく使われるmysqlというデータベースをインストールしておきます。
バージョンは5.7をインストールします。
```
$ brew install mysql@5.7
```
こちらもPATHを通す作業を行っておきます。
```
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
```
その後下記コマンドにより、設定の再読み込みをします。
```
source ~/.bash_profile
```
ここまでできたらmysqlを起動するコマンドを打ち込み、起動させましょう。
```
$ brew services start mysql@5.7
```
下記のように表示されれば正しく起動しています。
```
Starting MySQL
SUCCESS!
```
環境構築終了!
簡素的ですが、これで一通りrailsを使っていく環境が整いました。
環境構築はコマンドを実行していくだけの簡単な作業に思えるかも知れませんが、様々なソフトウェアをインストールする際にエラーが発生しやすく初心者殺しと言われる1つの大きな壁です。
今回は最低限必要なソフロウェアをインストールするコマンドについて記しましたが、
おそらくインストールを行っている途中でエラーが発生してうまく行かないところが出てくるかも知れません。
その時はエラーの内容を調べてどうにか頑張ってみてください。
以上、簡単ですが環境構築の手助けになればと思います。