初心者がRailsサーバー立ち上げるための環境構築で苦戦した話

#概要
progateの手順通りにすすめていくと、見事にハマって全然手順どおりに行かず。。。
ようやく「Yay！ You're on Rails!」の画面を拝むことができたので、
環境構築で躓いた部分を備忘録として書き残します。初心者が環境構築で挫折してしまう気持ちがわかりました。。。

#環境
・macOS    Catalina　ver10.15.7
・ruby     ver2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
・rbenv    ver1.1.2
・Rails    ver6.0.3.4
・homebrew ver2.5.12
・yarn     ver1.22.10
・nodebrew v8.9.4
・node.js  v15.3.0

#ハマったことろ
1.Homebrewインストール
2.rbenv / ruby-buildインストール
3.webpackerインストール
4.nodebrew / node / yarnインストール

###1.HomeBrewインストール
以下のエラーでインストール失敗。

```
Error: RPC failed; curl 56 OpenSSL ssl_read: SSL_ERROR_SYSCALL
```

上記の文をコピペして検索すると、色々対策案が出てきます。(ネットの通信速度が原因？)
バッファを増やすことで改善するようですが、自分の場合は時間開けて、
再インストールしたらできました。


###2.rbenv　ruby-buildインストール
インストール自体は問題なしでしたが、「PATHを通す」作業で少しハマりました。
自分が使っているシェルによって少し手順が変わります。
ざっと調べた感じ、「bash」「zsh」の２択でしょうか。
ちなみに、macOSを 「Catalina」 にアップデートすると、
デフォルトシェルが bash から zsh になっているようです。
[　パスを通すとは？ : https://qiita.com/soarflat/items/d5015bec37f8a8254380　]


まず使っているシェルの確認のために以下のコマンドをターミナルに打ちこみます。

```
$ echo $SHELL
```

**出力結果が``/bin/zsh``の場合**
以下のコマンド入力をして、PATHを通します。

```
$ echo 'eval "$(rbenv init -)"' >>  ~/.zshrc
$ source ~/.zshrc
```

何をしてるか簡単に説明すると、``.zshrc``というファイルに、
``eval "$(rbenv init -)"``という文言を追記しています。
``source ~/.zshrc``でファイルの更新をしているようなイメージです。




**出力結果が``/bin/bash``の場合**
以下のコマンド入力をして、PATHを通します。

```
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
```
つまりは、シェルによって、編集するファイルが異なるということですね。
ちなみに.zshrc(.bash_profile)っていうのは、
設定ファイルと言われているもので、.zshrc(bash_profile)だと、
ターミナル起動時に読み込まれるファイルになっています。このファイルに環境変数、
今回の場合だとPATHを登録しておくことで、登録したディレクトリ直下のスクリプトが、
絶対パスを指定しなくても実行できるようになります。
[ 参考先：https://web-nari.net/2019/01/12/bash-profile/ ]


残るはRubyとRuby on railsのインストールを実施。
Railsコマンドでアプリケーションの作成まではすんなりと行きましたが、
最後のRailsサーバー立ち上げで、``webpacker``が見つかりませんと言われて
インストール失敗。。。
どうもRails6でwebpackerが標準となり、
webpackerがインストールされてないとエラーが出るようです。
webpackerってなんだよ。。。



###3.webpackerインストール
webpackerとはなんぞやというのは、[こちら](https://qiita.com/Furuta03/items/0957e69c0927be5c1a8b "こちら")のページを参考にしました。

インストールは以下のコマンドで実行できます。

```
$ rails webpacker:install 
```

、、、うまくいかずまたエラーです。第４項に続きます。

###4.nodebrew / node / yarnインストール
今度は``yarn``と``node``と言われるものをインストールしろといわれました。
node.js関連のものみたいです。こいつらのインストール方法を調査。
[こちら](https://dev.classmethod.jp/articles/homebrew_node-js_install_must_xcode/ "こちら")に行き着いたんですが、自分はXcodeが入っていなかったので、
nodeのインストールは``nodebrew``でやることにしました。
ちなみにnodebrewは、node.jpのver管理ツールです。
nodebrewはhomebrewでインストールできるみたいです。(ややこしい、、、)
手順は[こちら](https://qiita.com/mame_daifuku/items/373daf5f49ee585ea498 "こちら")を参考にさせていただきました。

```
$ brew install nodebrew
```
次にセットアップして、PATHを通します。

```
$ nodebrew setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.ｚｓｈｒｃ
$ source ~/.ｚｓｈｒｃ
```
※~/.zshrcの部分は環境に応じて変更してください。
いよいよ``node``のインストールです。
インストールできるVerを確認して、Ver指定をしてインストールします。
自分はとりあえず最新Verをインストールしました。

```
$ nodebrew ls-remote
↑Ver確認
$ nodebrew install-binary v15.3.0
↑この場合はv15.3.0をインストール
$ nodebrew use v15.3.0
↑最後に使用するVerを指定するしておく必要があるらしい
```

お次は``Yarn``です。
公式ではnode.jsベースのパッケージマネージャーからのインストールは非推奨みたいです。nodebrewもnode.jsベースと言うことになると思うので、
YarnはHomeBrewでインストールします。
[ Yarn公式：https://classic.yarnpkg.com/ja/docs/install#alternatives-stable ]

```
$ brew install yarn --ignore-dependencies
```
``--ignore-dependencies``をつけると、``yarn``だけをインストールすることができます。
通常のインストールすると以下のパッケージがインストールされます。
``・icu4c``
``・node``
``・yarn``
nodebrewでnodeはインストールしているので、homebrewでもインストールしてしまうと、
依存関係のエラーになってしまうようです。

しかしこのままだと``icu4c``もインストールされていないので、インストールします。

```
$ brew install icu4c
```
ここまでくればwabpackerも問題なくインストールできると思い、
再度挑戦するも次はこんなエラーが発生。

```
Error: An exception occurred within a child process:
  RuntimeError: /usr/local/opt/node not present or broken
Please reinstall node. Sorry :(
```
入れたはずのnodeが見つからないと言っています。
``/usr/local/opt/node``のディレクトリにないと言っているので、
このディレクトリに、先ほど入れたnodeが存在するようにする必要があります。
手順は、
1.ディレクトリの作成
2.シンボリックリンクの設定
になります。
[ 手順は[こちら](https://blog.cloud-acct.com/posts/column-brew-install-yarn-ignore-dependencies/ "こちら")を参考させていただきました。 ]

**1.ディレクトリの作成**

```
$ mkdir /usr/local/opt/node
```
**2.シンボリックリンクの設定**
``/usr/local/opt/node``にアクセスすると、
nodebrewで入れたnodeが存在するディレクトリへリンクするように設定します。

```
$ ln -s ~/.nodebrew/current/ /usr/local/opt/node/
```
そして再度、

```
$ rails webpacker:install 
```

以下の表示がでて成功です。

```
Webpacker successfully installed 🎉 🍰
```

この状態で再度``rails s``を実行すると、、、

![スクリーンショット 2020-11-29 23.38.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/909963/1e81c55f-3931-24ed-c819-292fd3bfcb5e.png)

無事成功です。