[初学者向け]Githubからクローンしたときにやることリスト~rails s(サーバー起動)/エラーの対策まで

チーム開発実施時にGithubからデータをクローンしたのですが、やることを完全に忘れてしまっていた＋エラーが発生してしまったので、その際の解決策を備忘録として以下に記載しきます。（Qiita書くときのいつものパターンです。）


#全体の流れ
今回の作業の流れは以下のようになっております。
0. Githubからクローンしてくる
1. bundleのインストール
2. データベース作成
3. サーバー起動
ex. エラーについて（内容と対策）

##0. Githubからクローンしてくる
それでは、まずGithubからクローンしてきましょう。
githubでソースコードのURLを確認して、以下のようにコマンド入力しましょう。

```:terminal
$ git clone [クローンするソースコードのURL]
```
これでクローンは完了です！

##1. bundleのインストール
上記にてクローンは完了しましたが、アプリケーションをgitからクローンしてきただけなのでサーバーを立ち上げようとすると、エラーが起きてしまいます。
まずはアプリケーションを自分のローカル環境で実行することができるようにするために、bundle installをしましょう。
-bundle install:
作成されたGemfileをもとにgemをインストールするコマンド。

```:terminal
$ bundle install
```

##2. データベース作成
データベースを作成しましょう。
下記コマンドによってconfig/database.ymlの設定に基いてデータベースが作成されます。
＊私は過去にここでつまづきました笑もし興味ある方はご参照ください。
[初歩的ミス]データベース作成でつまづいた時の話ー原因から解決まで
https://qiita.com/Tatsu88/items/aa66db663ec4655ccd69

```:terminal
$ rails db:create

$ rails db:migrate
```

##3. サーバー起動
上記で設定は全て完了しましたので、サーバーを起動しましょう！

```:terminal
$ rails s
```

##ex. エラーについて（内容と対策）
特に上記にて問題ない方には不要ですが、私が直面したエラーについてまとめます！
ご参考になれば幸いです。

###bundle installができない！編
bundle installを使用した際に、以下の問題が発生し、中々bundle installができませんでした。。
問題１. bundlerが無い問題。
問題２. bundlerが途中で止まってしまう問題。

まず一つ目の問題、bundlerが無い問題から状況と解決策を記載していきます。

####問題１. bundlerが無い問題。
状況：
bundle installを実行したところ、bundlerが無いとコメントが出てきてしまいました。
原因：
bundlerが無いことです。わかりやすいですね笑
＊エラー分をコピーし忘れてしまいました。。。すいません。。

解決策：bundlerをインストールしましょう。

```:terminal
＄ gem install bundler
#以下コメントがでれば、成功です。
Fetching: bundler-1.14.6.gem (100%)
Successfully installed bundler-1.14.6
Parsing documentation for bundler-1.14.6
Installing ri documentation for bundler-1.14.6
Done installing documentation for bundler after 10 seconds
1 gem installed
```

```:terminal
$ rbenv rehash

#インストールできているか確認します。
$ bundle -v
Bundler version X.X.X
```
-rbenv rehash:
shimsというディレクトリをRubyの実行ファイルにインストールします。
shimsはコマンドをrbenvに渡すだけの実行可能ファイルで、rbenvをインストールした状態で、たとえばrakeを実行すると、オペレーティングシステムは次のことを行います。
 -rakeという名前の実行可能ファイルをPATHで検索します
 -PATHの先頭でrakeという名前のrbenv shimを見つけます
 -rakeという名前のshimsを実行します。これにより、コマンドがrbenvに渡されます。

-rbenv:
アプリケーションのRubyバージョンを選択し、開発環境が実稼働環境と一致することを保証（切り替えて）してくれます。
gemからインストールして、新しいコマンドが増える場合は必ず"rbenv rehash"を行うましょう。

####問題２. bundlerが途中で止まってしまう問題。
続いて、問題２について状況と解決策を記載していきます。
状況：bundle install実行時、以下のコメントが発生し、止まってしまいました。

```:terminal
An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling.
```
原因:クローン元にあったGemfile.lockがインストールを妨げていた。

解決策；
まず、Gem file.lockを削除します。（ファイルをゴミ箱に入れるだけでは消せていないので要注意）

```:terminal
#Gemfile.lockを削除します。
$ sudo rm -rf Gemfile.lock
```
*以降に関しては、人によって必要な解決作となります。
Homebrewにおけるopensslがインストール（更新）＋bundlerの更新オプションの設定で解決します。

```
$ brew install openssl

$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"
```
上記で全て解決していると思われます。bundle installしましょう！

```:terminal
$ bundle install
```

以上となります。最後までご覧いただき、ありがとうございました！
今後も学習した事項に関してQiitaに投稿していきますので、よろしくお願いします！
記述に何か誤りなどございましたら、お手数ですが、ご連絡いただけますと幸いです。

#参照
RailsでMySQLのbundle installエラー対処方
https://qiita.com/ozin/items/03a300749040ae11da2a

rbenvの使い方と仕組みについて
https://qiita.com/Kodak_tmo/items/73147ed4f0eec54d6e94

rbenv README
https://github.com/rbenv/rbenv/blob/master/README.md

Bundle install
https://bundler.io/man/bundle-install.1.html

【Ruby入門】今更聞けない！Ruby bundlerとは
https://www.sejuku.net/blog/19426

【初心者向け】bundler、Gemfile、Gemfile.lockの関係性について図でまとめてみた
https://qiita.com/nishina555/items/1b343d368c5ecec6aecf