rbenvでUbuntu20.04にrubyをインストール

####環境
  - OS：Ubuntu 20.04
  - Rubyバージョン：2.5.8

前提として、VMware上に作成した仮想環境。
OSインストールしたてのまっさらな状態からrbenvを使ってrubyをインストールする。

####UbuntuへのRubyインストール
参考記事は[こちら](https://qiita.com/kerupani129/items/77dd1e3390b53f4e97b2)。
まずはgitのインストールから。
一応、gitがデフォルトでインストールされていないか確認しておく。

```console
$ git

コマンド 'git' が見つかりません。次の方法でインストールできます:

sudo apt install git
```
では、インストール。

```console
$ sudo apt install git
```
一応、インストール時のログはテキストで残しておく。
インストール後、以下の設定を実施。

```console
$ git config --global user.name [ユーザ名]
$ git config --global user.email [メールアドレス]
```

gitのインストールが完了したので、ここからRubyをインストール。
まず、rbenvをダウンロード。

```console
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
```


.bashrcに以下の記述を追加（echo '文字列' >> 'ファイル名'でファイルに文字列を書き込むことができる）。

```console
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
```
実行後、エディタで.bashrcの中身を確認してみると、ファイルの末尾にechoした内容が追加されていることが分かる。
![captcher01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679836/f03c3cf8-ce44-1a6c-6fa5-128de521b99d.png)


sourceコマンドで.bashrcの内容を読み込む。

```console
$ source ~/.bashrc
```

インストール可能なRubyのバージョンを確認

```
$ rbenv install -l
2.5.8
2.6.6
2.7.1
jruby-9.2.12.0
maglev-1.0.0
mruby-2.1.1
rbx-5.0
truffleruby-20.1.0
truffleruby+graalvm-20.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all' to show all local versions.
```
サポート範囲内の2.5～2.7までしかインストールできない模様。
参考書とバージョンは異なるものの、2.5.8にてインストールすることにした。

```console
$ rbenv install 2.5.8

Downloading ruby-2.5.8.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.bz2
Installing ruby-2.5.8...

WARNING: ruby-2.5.8 is nearing its end of life.
It only receives critical security updates, no bug fixes.


BUILD FAILED (Ubuntu 20.04 using ruby-build 20200727)

Inspect or clean up the working tree at /tmp/ruby-build.20200728011639.10883.ljBQV0
Results logged to /tmp/ruby-build.20200728011639.10883.log

Last 10 log lines:
checking for ruby... false
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20200728011639.10883.ljBQV0/ruby-2.5.8':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
```
エラーとなってしまった。Cコンパイラが入ってないよ!というエラーのようなので、gccをインストールしてみる。

```console
$ sudo apt install gcc
```
正常終了した。
こちらも、一応インストールログはテキストで記録しておく。

再度rbenvでrubyをインストール

```console
$ rbenv install 2.5.8

Downloading ruby-2.5.8.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.bz2
Installing ruby-2.5.8...

WARNING: ruby-2.5.8 is nearing its end of life.
It only receives critical security updates, no bug fixes.


BUILD FAILED (Ubuntu 20.04 using ruby-build 20200727)

Inspect or clean up the working tree at /tmp/ruby-build.20200728013413.16282.OsujhX
Results logged to /tmp/ruby-build.20200728013413.16282.log

Last 10 log lines:
checking for _setjmp as a macro or function... yes
checking for sigsetjmp as a macro or function... no
checking for setjmp type... __builtin_setjmp
checking for prefix of external symbols... NONE
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking if make is GNU make... ./configure: line 27352: make: command not found
no
checking for safe null command for make... configure: error: no candidate for safe null command
```
またもエラーになってしまった。
今度はmakeがインストールされてないよ！というエラー。
※make：Linuxにおいてソースファイルをコンパイルするときに必須のコマンド。らしい。
ということで、makeもインストールしてみる。

```console
$ sudo apt install make
```
例によってインストールログはテキストで残しておく。

今度こそ、rbenvでrubyをインストール。

```console
$ rbenv install 2.5.8
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.
```
またもエラー、どうやら『openssl』と『readline』と『zlib』が入っていないのが原因らしい。
とりあえず指示通りに実行してみる。

```console
$ apt-get install -y libssl-dev libreadline-dev zlib1g-dev
```
これは問題なく完了。再度rbenvでインストールを実行。

```console
$ rbenv install 2.5.8
Downloading ruby-2.5.8.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.bz2
Installing ruby-2.5.8...

WARNING: ruby-2.5.8 is nearing its end of life.
It only receives critical security updates, no bug fixes.

Installed ruby-2.5.8 to /home/kei/.rbenv/versions/2.5.8
```
インストールできた！

最後に、rbenvでバージョンを指定して完了。

```console
$ rbenv global 2.5.8
```

バージョンも確認しておく。

```console
$ ruby -v
ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-linux]
```