UbuntuにRubyを入れた：備忘録


こんにちは。Ruby勉強中のプログラミング初心者です
今までずっとWindows使ってたけど、ネットで調べてみると、どうやらWindowsはあまりプログラミングには推奨されないOSらしい
以前からLinuxに興味があったし、それならUbuntuの導入やるか～ということでやりました
以下、備忘録です

OSがWindows10だったので、WSLを使って簡単にUbuntuを導入することができました
やり方はググれば親切な記事がいっぱい出てきます
ありがとうございます

UbuntuターミナルのフォントをCica（最強にして最愛のフォント）に変え、背景は紺色、文字色はクリーム色っぽい感じに
見やすく目にやさしい最高

Rubyを入れるためにまずは`git`と`rbenv`（名前が覚えにくい）と`ruby-build`を入れる必要があります
`git`は言わずと知れたスゴイ奴です
これを使いこなせるとカッコイイ。クローンしたりコミットしたりできる。スゴイ
`rbenv`はRubyのバージョンを管理してくれるイカした奴で、好きなバージョンのRubyをインストールしたり、プロジェクトごとにRubyのバージョンを変えたりすることができます
`ruby-build`は`rbenv`のプラグインで、Rubyのインストールを簡単にコイツのおかげでRubyのインストールを簡単にできるらしい

まずは`git`を入れます
Ubuntuのターミナルに

```
$ sudo apt install git
```

と打ち込んでEnter
`Ubuntu`のセットアップ時に設定したパスワードの入力を求められます
ちなみに`sudo`というのは「他のユーザ権限で実行」を表すらしい
何のためにあるのかは謎です
`apt`はパッケージ管理用コマンドで、`CentOS`における`yum`らしい
何のためにあるのかは謎です

`git`が入ったら`rbenv`を入れます

```
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
```

ここで`git`が出てきます。インストールではなく、リモートリポジトリからローカルにクローンしているんですね。仕組みはよくわからないけど面白いです

```
$ rbenv --version
```

と叩いて無事にバージョンが出てくればOK
私の環境では`rbenv 1.1.1-39-g59785f6`と表示されました

`ruby-build`を入れます

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

あとは`rbenv`を使ってRubyを入れていきます

```
$ rbenv install --list
```

`install --list`コマンドでインストール可能なRubyのバージョンがいっぱい表示されます。好きなものをインストールしましょう
名著『プロを目指す人のためのRuby入門』（通称チェリー本）では`2.4.1`が使われています
私は今まで`2.4.1`を使っていたの今回は`2.5.3`を入れてみました

ここまでは簡単です。こっからがすごく大変でした
Rubyをインストールするためにコマンドを叩きます

```
$ rbenv install 2.5.3
```

不穏な空気と共に文字が流れていき、やっぱり出てきた`error`の5文字

```
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.20190113131329.644/ruby-2.5.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
```

エラーが出るとつらいですが、じっくり目を通して何がダメだったのかを読み解いていきましょう
私のように大量の英文を見ると蕁麻疹が出るという人は、エラーメッセージをそのままクエリとしてgoogle様に投げてみるのもいいでしょう
上記のエラーメッセージの`no acceptable C compiler`に注目し、よくわからんけどCコンパイラが必要なんだな、ということで`gcc`というものをインストールしました。

```
$ sudo apt install gcc
```

`openssl`というものが必要な場合もあるらしいですが、私の場合は既に最新バージョンだったためスルー
「Cコンパイラ？　入れたし大丈夫やろ！」と意気揚々と`$ rbenv install 2.5.3`を再び叩きます。するとまたエラーが出て落ち込みます

```
checking if make is GNU make... ./configure: line 27342: make: command not found
no
checking for safe null command for make
```

`make`なるものを入れる必要があるらしい。何に使うのかはわからないけど、エラーメッセージがそう言ってるんだから、エラーメッセージを信じよう。エラーメッセージちゃんと読むのほんと大事

```
$ sudo apt install make
```

三度目の正直とばかりにRubyインストールコマンドを叩きますが、またもエラーが出ました。しかし今回はなんだか毛色が違います

```
Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.
```

エラーメッセージ様が__「Youはこれをインストールすればイイんじゃない？」__と提案してくれています。__感謝……！！　圧倒的感謝……！！！__

```
$ sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
```

そしてもう何度打ち込んだかわからないインストールコマンドをもう一度叩きましょう

```
Installed ruby-2.5.3
```

と出てきました
バージョンを確認して、実際にインストールされたか確かめてみましょう

```
$ rbenv versions
  2.5.3
```

__花京院！　イギー！　アブドゥル！　終わったよ……__

しかし戦いはまだ終わっていなかった

__g e m が 使 え な い__

```
$ gem install bundler
rbenv: ruby: command not found

The `ruby' command exists in these Ruby versions:
  2.5.3
```

何を言ってるのかわからねーと思うが俺も何をされたのかわからなかった
色々と試した結果

```
$ rbenv global 2.5.3
```

このように`rbenv global`コマンドを使い、使用するRubyのバージョンを固定するという段階を経てgemコマンドがちゃんと動作するようになった

```
$ gem install bundler
（中略）
Successfully installed bundler-2.0.1
```

無事にrailsを入れることにも成功。これでなんとかやって行けそう
以上、全身がマサカリだらけになりそうな内容ではありますが備忘録でした

01/27 追記
`rbenv`で別バージョンのRubyをインストールしようとすると、`BUILD FAILED`のようなエラーが出ることがありました。これはどうやらインストールしようとしているRubyのバージョンが古いために起こるようです。これでしばらく悩まされました