EC2サーバにRuby環境構築

# やりたいこと
AWSのEC2サーバ上で、rbenv + Ruby最新版が動く環境を作る

### インスタンス情報
- インスタンスタイプ t2.micro
- Amazon Linux AMI 2017.03.1.20170812 x86_64 HVM

# rbenvインストール
githubのリポジトリからクローンしてきます
gitが入ってない場合は先にyumでgitをインストールします

`$ sudo yum install git -y`

#### まずは本体をインストール
```
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Cloning into '/home/ec2-user/.rbenv'...
remote: Counting objects: 2629, done.
remote: Total 2629 (delta 0), reused 0 (delta 0), pack-reused 2629
Receiving objects: 100% (2629/2629), 488.96 KiB | 1.14 MiB/s, done.
Resolving deltas: 100% (1645/1645), done.
```

リポジトリをクローンしてきたらパスを通してコマンドが打てるようにします

```
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
```

ちゃんとコマンドが通るか確認

```
$ rbenv -v
rbenv 1.1.1-6-g2d7cefe
```

これでインストール完了っぽく見えますがまだインストールコマンドは通りません

```
$ rbenv install -l
rbenv: no such command `install'
```

#### ruby-buildのインストール
ruby-buildはRubyをインストールするためのrbenvのプラグインです。
これをインストールすることで、「rbenv install {バージョン}」でRubyをインストール出来るようになります。

```
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/ec2-user/.rbenv/plugins/ruby-build'...
remote: Counting objects: 7936, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 7936 (delta 0), reused 1 (delta 0), pack-reused 7934
Receiving objects: 100% (7936/7936), 1.67 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (4877/4877), done.
```

インストールスクリプトの実行

```
$ cd ~/.rbenv/plugins/ruby-build
$ sudo ./install.sh
```

これで、以下のコマンドからインストール可能なRubyのバージョン一覧が見れるはず
`$ rbenv install -l`
現時点でのRubyの最新バージョンは2.4.2みたい

# Rubyインストール

```
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...

BUILD FAILED (Amazon Linux AMI 2017.03 using ruby-build 20170914-2-ge40cd1f)

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

Last 10 log lines:
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.

Configure options used:
  --prefix=/home/ec2-user/.rbenv/versions/2.4.2
  LDFLAGS=-L/home/ec2-user/.rbenv/versions/2.4.2/lib 
  CPPFLAGS=-I/home/ec2-user/.rbenv/versions/2.4.2/include 
```

怒られました。
エラーメッセージの中に
「Try running `yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.」
とあるのでその通りにしてみます。

```
$ sudo yum install -y openssl-devel readline-devel zlib-devel
```

もう一度先程のコマンドをトライ

```
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
Installed ruby-2.4.2 to /home/ec2-user/.rbenv/versions/2.4.2
```

成功しました
以下のコマンドでこのOSで使用するRubyのバージョンを2.4.2と宣言
`$ rbenv global 2.4.2`

ちゃんと切り替わってるか確認

```
$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
```

##### ちなみに
以前まではrbenvを使って新しくRubyのバージョンをインストールした時やバージョンを切り替えた時は
`$ rbenv rehash`
というコマンドを打つお約束がありましたが、いつの間にか必要なくなっていたそうで。

参考URL
[rbenvでrehashがいらなくなった](https://blog.bgbgbg.net/archives/2596)

とりあえずこれでRubyが動くようになりました
最終的にはrailsアプリをEC2上で動かしてインターネットから閲覧出来るようにしたいのですがそれについてはまたいつか。