非エンジニアがRailsの環境構築したら、つまづきやすい箇所が全部まとまった話

![say yes to adventures.jpg](https://qiita-image-store.s3.amazonaws.com/0/221415/6bb18e8f-672c-23d4-0258-1ac0eb78db89.jpeg)

[Livesense not engineers Advent Calendar 2018](https://qiita.com/advent-calendar/2018/livesense-not-engineers)の12月19日を担当する@taku_shibuyaです。

普段は[IESHIL](https://www.ieshil.com/)と[DOOR賃貸](https://chintai.door.ac/)のチーフプロダクトマネージャーをしています。

アドベントカレンダーは2回目の参戦で、去年の記事はコチラ[【非エンジニアによるエンジニアチームのマネジメント】](https://qiita.com/taku_shibuya/items/986f671389cb5126068b)です。

去年の僕は、記事の最後にこんなことを書いてました。

>以上で1回もコードが出てこないエントリを終了します。来年はもっと技術的なことが書けるようになってたらいいなー！

これで今年は技術的なエントリをしない選択肢が消えました。

ただし、問題は今年に入って一度もプルリクすら出していないということです。

『何書こうかな〜』とか考えても無駄なのです。

一行もコードを書いてないのですから。

今から何かやるという選択肢しかありません。

ということで何やろうか考えた結果、いつかやろうと思って先延ばしし続けていた[IESHIL CONNECT](https://connect.ieshil.com/)の環境構築を自分でやってみることにしました。

※IESHIL CONNECTはRailsを使用

##IESHIL CONNECTの環境構築
IESHIL CONNECTのリポジトリのREADME.mdを見ながら進めます。(リポジトリは非公開なので悪しからず)

ちなみにIESHIL CONNECTで使っているツール類のバージョンは以下の通り。

```
バージョン：
node: 8.6.x
yarn: 1.12.x
ruby: 2.4.2
rails: 5.1.2
```

まずは`git clone`ですね。

その前に、`git clone`したいディレクトリに移動します。

```
$ cd Dev/
```
ローカルのDevというディレクトリに移動しました。(任意のディレクトリに移動しただけです)

続いて、`git clone`コマンドを叩きます。

```
$ git clone git@github.com:xxxxxxxxxxx
```
初っ端からエラー...

```
Cloning into 'connect.ieshil.com'...
Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
```
SSHキーの設定がされてないよ的なエラーですね。。

この記事を参考に、キーの設定をしてみます。

https://qiita.com/shizuma/items/2b2f873a0034839e47ce

まずはキーを入れるディレクトリに移動。

```
$ cd ~/.ssh
```
次に、コマンドで鍵を生成。

```
$ ssh-keygen -t rsa
```
これでキーができたので、中身をコピペします。

```
$ pbcopy < ~/.ssh/id_rsa.pub
```
次は、GitHubにキーを登録します。

![スクリーンショット 2018-12-10 14.57.49.png](https://qiita-image-store.s3.amazonaws.com/0/221415/741b86e6-62a9-a1cc-9ccb-7354feeffcdd.png)

これでいけるはず！`git clone`したいディレクトリに戻ってさっきの`git clone`コマンドを再度実行します。

今度は無事に成功しました。

次は、`git clone`したディレクトリに移動して`bundle install`します。

```
$ cd connect.ieshil.com/
```
```
$ bundle install --path vendor/bundle -j4
```
すると、またエラーが出ました。

```
rbenv: version `2.4.2' is not installed (set by /Users/xxxxxxx/Dev/connect.ieshil.com/.ruby-version)
```
Rubyの2.4.2がインストールされてないよと言われているのでインストール。

```
$ rbenv install 2.4.2
```
インストールできたので、再度`bundle install`するためにさっきのコマンドを叩くもエラー。

```
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.3.1
  2.4.0
  2.4.3
  2.5.1
```
bundlerが入ってないぽいので、インストール。

```
$ gem install bundler
```

インストールできたので、3度めの正直の`bundle install`でようやく成功。

次は、yarnのinstallとbuildをします。

```
$ yarn
```
はい、またエラーです。

```
yarn install v1.9.4
[1/5] 🔍  Validating package.json...
error connect_ieshil_com@: The engine "node" is incompatible with this module. Expected version "8.6.x".
error connect_ieshil_com@: The engine "yarn" is incompatible with this module. Expected version "1.12.x".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```

そう簡単にはいきません。

バージョンがだめっぽいのでupgradeしてみます。

```
$ brew upgrade node
```
```
$ brew upgrade yarn
```
アップグレードできたので、再度yarnのinstallとbuildにトライ。

しかし、またエラー...

```
yarn install v1.12.3
[1/5] 🔍  Validating package.json...
error connect_ieshil_com@: The engine "node" is incompatible with this module. Expected version "8.6.x". Got "11.4.0"
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```
nodeのバージョンが違うから、"8.6.x"にしろやと言われているようです。

まず、ndenvというバージョン管理ツールをbrewでダウンロードして、nodeのバージョンを下げます。

```
$ brew install ndenv
```
次は、環境変数を設定します。

```
$ echo 'export PATH="$HOME/.ndenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(ndenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
```
終わったので確認してみます。

```
$ ndenv -v
ndenv 0.4.0
```
バージョンが出ているので成功っぽいです。やったぜ！

ndenvでnodeをインストールします。

まずインストール可能なバージョンの確認から。コマンドはこちら。

```
$ ndenv install -l
```
続いて、バージョンを指定してインストールします。

```
$ ndenv install v8.6.x
```
インストールされたnodeのバージョンを確認してみましょう。

```
$ ndenv install v8.6.x
  system
* v8.6.0 (set by /Users/xxxxxxxx/Dev/xxxxxxx/.node-version)
```

よし！！
次は、ローカルでのnodeのバージョンを設定します。

```
$ ndenv local v8.6.x
```

これでnodeのバージョン設定は大丈夫なはずなので、再度yarnを実行します。

```
$ yarn
```
通った！

これで設定は終わりです。

Railsサーバーを立ち上げて確認してみましょう。

```
$ bin/rails s
```

localhost:3000にアクセスすると、

![スクリーンショット 2018-12-18 14.21.04.png](https://qiita-image-store.s3.amazonaws.com/0/221415/b291e25d-3b16-5648-df02-55c6b8ee4f7c.png)

だめですね。

データベースの設定書いてないよと言われているようなので、.envファイルに書きます。

env.localの設定内容をコピーして.env.localにファイル名変更して設置しました。

```
$ cp env.local .env.local
```

これで大丈夫なはず。

Railsサーバーを再度、立ち上げて確認してみましょう。

![スクリーンショット 2018-12-18 15.12.40.png](https://qiita-image-store.s3.amazonaws.com/0/221415/254cd039-69d4-0e74-288e-85f90f851ea1.png)

できた！
##まとめ
いかがでしたでしょうか？

環境構築でつまづきやすいところは、全部つまづきました。

偶然ですが、環境構築でつまづきやすいところがまとまったのではないでしょうか？

懸念としては、環境構築がエンジニアにとっては当たり前すぎる内容だし、非エンジニアには理解し難い内容ということです。

何が言いたいかというと、この記事は需要が無さそうということです。

しかし、それは気にしないことにします。

だって、自分で環境構築できたの嬉しかったから。

明日は同じチームの若手エース[@owaka](https://qiita.com/owaka)さんです！よろしく！！