<環境構築>M1macでRuby on Rails の環境を構築

こんにちは
未経験でweb系エンジニアに転職を目指すものです。

Railsチュートリアルを学習し終えました。
なので次はブログ機能などのあるホームページを作ってみようかなと思います。
そこでローカル環境に環境構築していこうかなと思います。


### PC情報
* MacBook Air (2020 M1)
* macOS Monterey 12.3.1

## 流れ
1. Command Line Tools 
2. Homebrew
3. rbenv
4. Ruby
5. Bundler
6. yarn
7. Ruby on Rails


## 1.Command Line Tools 
#### Command Line Tools とは
macOsのターミナル上でコマンドを使用するために必要なツールです。

#### インストール
```
$ xcode-select --install
```
もしくは
Xcodeをインストールすることで
Command Line Tools　を使用することができます。


#### インストールの確認

```
$ xcode-select -v
xcode-select version 2395. 　#バージョンが返ってくればインストールされています。
```

## 2. Homebrew
#### Homebrew　とは
macOs用のパッケージマネージャー

#### パッケージマネージャー　とは
パッケージを管理するソフトウェア
　その他：npm（node.js）、yarn（npmの代替）、gem（RubyGem）など

#### パッケージ　とは
様々な機能を持ったソフトウェア 
　例：rbenv、yarnなど

#### インストール
公式サイトの「install Homebrew」に記載されているコマンドを実行します。
https://brew.sh

```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"　2022.5.2時点
```

#### インストールの確認
```
$ brew -v
Homebrew 3.4.9　#バージョンが返ってくればインストールされています。
```

#### 注意!
M1macではバージョン2.x.xは対応していません。
3.0.0以降を使うようにしましょう。

2.x.xが既にインストール済みの方は
```
$ brew update
```
でアップデートしましょう。

## 3-1. Ruby(+rbenv)
続いてRubyをインストールします。
今回は先ほどインストールしたHomebrewを使用して
「rbenv」と「ruby-build」という２つのformula（homebrewのソフトウェア）
をインストールして
Rubyのインストールとバージョン管理を行います。
※ rbenvを使用するためにruby-buildは必須です。

### rbenv　とは
いろんなRubyのバージョンをインストールし使い分けるためのformula

### ruby-build とは
rbenvにいろんなRubyのバージョンをインストールするために必要なformula

### インストール
```
$ brew install rbenv ruby-build
```

## 3-2 パスを通して初期化。

### パスを通すとは
ターミナル上でコマンドを使えるようにすること
今回の場合はrbenvこまんどを使えるよにする

どうやるのか

使用しているシェルの設定ファイルに
zshの場合は.zshrc　※なければ作成する。
```
export PATH="$HOME/.rbenv/bin:$PATH"　＃パスを通す
eval "$(rbenv init -)"　　　　　　　　　 #初期化
```
を追加することでパスを通して初期化をすることができます。


２通りのやり方があります。

#### 方法１：ターミナル上でechoコマンドを使用する
```
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc 　#パスを通す
echo 'eval "$(rbenv init -)"' >> ~/.zshrc　　　　　　　　　　#初期化
```

#### 方法２：直接ファイルに記述する
1　FinderでCommand+Shift+.(ドット)で.zshrcを表示する。
2　.zshrcをテキストエディターで開く
3  追記する。
``` :.zshrc
export PATH="$HOME/.rbenv/bin:$PATH"　＃パスを通す
eval "$(rbenv init -)"　　　　　　　　　 #初期化
```

## 3-3 .~zshrcを読み込む
下記のコマンドで.~zshrcを読み込み、
3−2で追加した初期化をすることができ
rbenvコマンドを使用できるようになります。
```
$ source ~/.zshrc
```

正しく「rbenv」がインストールされているかどうか確認します。
```
$ rbenv -v #バージョンが返ってくれば成功！
Homebrew 3.4.10
```

## 4 Ruby
macにはもともとRubyがインストールされていますが
今回は3でインストールしたrbenvを
使用してRubyをインストールしていきます。

## 4-2 インストール
まずは
### インストールできるRubyを確認します
```
$ rbenv install -l
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.1.0
truffleruby+graalvm-22.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
```

### インストール
使いたいバージョンのRubyをインストールします
今回は最新の3.1.2をインストールします。

※以降の出てくるバージョンは自分の使いたいバージョンに置き換えてください。


#### インストール

```
$ rbenv install 3.1.2
```

## 4-3 Rubyの切り替え
システム全体で使うRubyを
先ほどインストールしたRubyのバージョンに切り替えます。
```
$ rbenv global 3.1.2
```
・glabal: システム全体で使う Ruby のバージョンを指定
・local : プロジェクト（ディレクトリ）ごとに　Ruby のバージョンを指定


## 4−3−2 rbenvを更新
```
$ rbenv rehash
```
rbenvに4−3の変更を反映させます。

## 4-4 インストールの確認
4−3の変更が反映されていることを確認します。
```
$ rbenv versions
  system
  3.0.3
* 3.1.2 (set by /Users/mochizukikouki/.rbenv/version)
```
*印ついているのがglobalに指定されているものです。

## 4−5 Rubyの場所の確認
macに元々インストールされていたRubyでは無く
rbenvでインストールされたRubyを使えるようになっていることを確認します。
```
$ which ruby
/Users/[user_name]/.rbenv/shims/ruby
```
.rbenv/shims/rubyとなっていれば
rbenvでインストールされたRubyを使えるようになっています。

## 4-6 gemの場所の確認
### gem　とは
Rubyでインストールされたパッケージを
管理するパッケージマネージャーです。
```
$ which gem
/Users/[user_name]/.rbenv/shims/gem
```
.rbenv/shims/gemとなっていれば
rbenvでインストールされたgeｍを使えるようになっています。

以上でRubyのインストールが完了しました。

## 5. Rails

### インストール
先ほどのgemを使ってrailsをインストールします。

```
$ gem install rails
```

### インストールの確認
```
$ gem list 
もしくは
$ gem list | grep rails
```
## 5-2 bundleの確認
### bundleとは
bundleまたはbundlerと呼び
Gemfileに記述されたパッケージの
依存管理をするgemです。
### インストールの確認
```
$ gem list 
もしくは
$ gem list | grep bundler
```

## 5-3 rbenvを更新
念のために
```
$ rbenv rehash
```
## 5-4 railsコマンドの確認
railsコマンドが使えることを確認します
railsコマンドならなんでもいいです。
```
$ rails -v
とか
$ which rails
```
以上でrailsのインストールは完了です。

## 6. yarn
Rails6ではwebpakerが必須になりました。
まずはwebpakerを管理するため
yarnを
Homebrewを使ってインストールしていきます。

### webpacker とは
webpackを使うためのgemパッケージ

### webpack とは
JavascriptやCSSなどをまとめるビルドツール

## 6-2 インストール
Homebrewを使ってインストールしていきます。
```
$ brew install yarn
```

## 6-3 インストールの確認
```
$ yarn -v
1.22.18　 #バージョンが返ってくれば成功！
```

## 7. RubyonRails起動！
いよいよRubyonRailsを起動します！

## 7-2 作業ディレクトリ作成
作業したい場所にディレクトリを作成して移動します。
```
$ mikdir フォルダー名
$ cd フォルダー名　　
```
## 7-3 rails new
railsアプリを作成します。
```
$ rails new アプリ名
```
すると
様々なフォルダーやファイルが作成されます。

## 7-4 テキストエディターで開く
私はVScodeを使用しています。
rails new で作成したアプリを
ドラック&ドロップでVScodeで開きます。
## 7-3 rails new
ターミナルで
```
$ rails s
```
でrailsサーバーを立ち上げます。

そしてlocalhost:3000にアクセスします。
hello world と表示されたら
環境構築は成功です！

お疲れ様でした！

# 最後に
１つ１つ理解しながら環境構築をしていったので
少々時間はかかりましたが、
それぞれの役割などが明確になり
良かったと思います。

これからどんなアプリを作ろうか
楽しみです。

### 参考文献

https://pikawaka.com/rails/curriculums-wakatter-mac-env-rails6#1.Command%20Line%20Toolsを用意しよう

https://youtu.be/z3pjRoHuhEc

https://mogulla3.tech/articles/2020-12-29-01

https://qiita.com/Yinaura/items/0b021984bb21ae77816d

https://www.youtube.com/watch?v=7I8Eyf6vKbQ&t=310s