0から始めるRails Tutorial - Ubuntu 環境構築編

しがないラジオに触発されて、久しぶりにubuntuを開いてRails Tutorialを始めてみる。
大学時代の研究でちょこっと使っただけのubuntuをアップデートしながら、ほぼ0からRailsの環境を作っていきます。
AWSのcloud9を使えば簡単だったのかもしれませんが、ローカルに環境を作るところをやってみたかったのでチュートリアルを本格的に始める前にRailsの環境をローカルに作ってみるところまで調べながらやってみました。
初めての記事かつ備忘録的なものなのですので何卒。。。

# ubuntuをアップグレード
まず、ubuntuをアップグレードします。

ubuntu 17.04 Zesty ⇛ ubuntu 18.04 LTS Bionic

はじめは、updateで404エラーが出て焦りましたが、サポートが終了してリポジトリが移行していた模様
一度17.10 Artfulを経由して無事18.04になりました。LTS(長期サポート版)なのでしばらくは安心？

/etc/apt/sources.list
内のZestyの記述を一旦Artfulに置き換えて以下を実行

````

//パッケージリストの最新化
$ sudo apt update
//カーネルアップグレード、パッケージ最新化（Artfulへ）
$ sudo apt dist-upgrade
//バージョン情報の確認(Artfulになっていることを確認)
$ lsb_release -a
//アップグレード（Bionicへ）
$ sudo do-release-upgrade
````

これでubuntuのアップグレードが完了しました。
最初はなかなかうまく行かずモヤモヤしましたが、なんとか出来ました。

参考にさせていただいたサイト
[Ubuntu 最新バージョンへのアップグレード](https://server.etutsplus.com/how-to-upgrade-to-the-latest-version-of-ubuntu-with-do-release-upgrade/)

# vimやGitやら
ubuntuをアップグレード出来たので、Rails Tutorialをちょこちょこやっていけばよかったのですが、エディタやGitについてもやもやしながら進めるのが気持ち悪かったのでまずvimの使い方を簡単に覚えて
gitのインストール、Githubのアカウント作成、初めてのコミットまで調べながらやってみました。
Rubyなどをインストールする際にもGitがあったほうが良いのでこの段階でGitはインストールしましょう。
これに関しては、以下の親切な記事を参照

[ターミナル 作業効率化 tips集](https://qiita.com/shizuma/items/86470203ac8ea6b4d53f)
[知識0から始めるVim講座](https://qiita.com/JpnLavender/items/fabcc79b4ab0d52e1f6d)
[今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説](https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000#%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%892-SSH%E3%81%AE%E9%8D%B5%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)
[UbuntuにGitをインストールする](https://qiita.com/tominaga_daichi/items/771ac45b89b02e8a5d64)
[【GitHub超初心者入門】この前初めてGitHubを使い始めたエンジニア見習いが書くGitHubの使い方と実践～とりあえず一緒に動かしてみようぜ！～](https://qiita.com/nnahito/items/565f8755e70c51532459)
[GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~](https://qiita.com/shizuma/items/2b2f873a0034839e47ce)

#ついにRailsをインストール
RailsインストールにGitはいるにしてもvim、Githubは蛇足かもですが、Railsインストールしてからの流れがスムーズになると思います。
ここからやっとRailsを入れていきます。
Ruby on Railsは、Rubyのライブラリなので、まずRubyから。

### rbenvをインストール
rbenvはRubyのバージョン管理ツールです。
基本的にこいつからRubyをインストールします。そうすると複数のバージョンのRubyを使い分けられるらしい。

```
///依存ライブラリのインストール
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev li
bffi-dev libgdbm5 libgdbm-dev
//rbenvとプラグインのインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
```

rbenvがインストールできました。
bashの環境設定を行います。

```
//設定の追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
//設定の再読込
$ source ~/.bashrc
//バージョンの確認
$ rbenv --version
```
これでバージョンが表示されればOK

```
//インストール可能なRubyのリストを確認
$ rbenv install --list
```
2018/12/23 時点の安定版は2.5.3らしいのでこれをインストールする。

```
//rubyをインストール
$ rbenv install 2.5.3
//インストールしたバージョンをglobalに設定
$ rbenv global 2.5.3
//バージョンが表示されればOK
$ ruby -v
//必要なのわからなかったが、gemのupdateも実行しておく
$ gem update --system
//パーミッションエラーが出た場合は以下
$ gem update --system -n /usr/local/bin
```
これでrubyがインストールできた。
ホームディレクトリに.gemrcというファイル名で設定ファイルを用意する
gemのインストールコマンド実行時などに時間がかかるドキュメントファイルの生成をスキップする。
ここらへんからはRails Tutorialを参考にした。

``` .gemrc
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc
```
Railsに必要なライブラリをインストールしておく

```
$ sudo apt install libsqlite3-dev nodejs
```
gemからRailsをインストールする！

```
$ gem install rails -v 5.1.6
//Rails Tutorial１章のサンプルアプリの流れ
$ rails _5.1.6_ new hello_app
$ bundle install
```
自分は、bundle installでエラーが出てしまったのでGemfile.lock削除して再実行したらいけました。
[Ruby on Railsでbundle installでエラーが出た時のシンプルな解決方法](https://code-schools.com/ror-bundleerror/)

```
$ rails server
```
これでhttp://localhost:3000/
にRailsが表示されれば無事成功！！

###Railsインストール周りで参考にさせて頂いた記事
[Bash on Ubuntu on WindowsでWindows上にRails開発環境を構築【備忘録】](https://yukituna.com/966/)
[rbenv README.md](https://github.com/rbenv/rbenv#installation)
[ruby-build wiki](https://github.com/rbenv/ruby-build/wiki)
[Ruby - だうんｊ](https://www.ruby-lang.org/ja/downloads/)

### 最後に
ビギナーでいきなりローカルに環境を作ろうという方はあまりいない？事とGit、Vim、rbenvなどRailsに辿り着くまでにいくつかのハードルがあるのである程度それが何者なのか理解しながら進めようとすると大変でした。
大分雑な記事になってしまったのと、チュートリアルの段取りを無視した流れになっていることをお許しください。
余裕あるときに補完していくかもです。
（チュートリアルでもGitなど使うけどそもそもrbenvとかを入れるのにGitがあったほうがいいなど、ローカルで組もうとするとこのあたりはしょうがないのか）

# その他参考にさせて頂いた記事など
[Qiita書き方メモ](https://qiita.com/hiroyuki_hon/items/f2a779bb295fd12646ab)