Raspbianにrubyをインストール

参考サイト：[CentOS 6.3 にrbenv + ruby をインストール](http://qiita.com/KurokoSin/items/5f8ce74da4ea948b896f)

#概要(インストールする前に)
自分の記事の焼き直しです。
このページは自分が自分のruby環境構築のために、ちょっと他では書かれていないことをやっております。
一般論とは外れています。ご了承お願いします。


## ruby
rubyのバージョンを変更して使っていくために、rbenvの管理下に置くようにする。
こうしておくことで、脆弱性の修正パッチとかあてることになっても
ゆっくりインストールした後で、コマンドで切り替えるだけなので停止時間を
可能な限り短くしておくことができる。


## rbenv
### rbenvって何？
rubyのバージョンをいつでも任意に切り替えるツール。
bashでできているため、他のソフトにも応用は可能。

### インストールの方針 
- rubyアカウントを作成し、rbenvもrubyも該アカウントで管理する。
- ホームディレクトリを/opt/rubyとする。
- .rbenvディレクトリの作成場所も/opt/ruby配下。
- rubyの本体もここで管理していく
- rbenv-buildを使用してインストールする

rubyアカウントを作成する理由
　　rbenvのインストール先及びruby本体のインストール先が~/.rbenv 配下となっている。
　　何も考えずにインストールしてしまうと、いつも使っているユーザがruby本体を消してもよい権限すらもらっていることになる。
　　あと、各ユーザが各ホームディレクトリの配下に同一バージョンのrubyを持つことになってしまう。
　　気持ち悪いのでrubyアカウントで管理していく方針にしました。
　　セキュリティの基本事項「最小権限の原則」に反するので、特別にrubyを管理できるユーザを作る。システムメンテナンスの部類にはいると思うのでrootグループ配下にする。

# インストール手順

システムアカウントの作成

```bash:rubyアカウントの作成
$ mkdir /opt/ruby
$ useradd -r -g root -d /opt/ruby -s /usr/sbin/nologin ruby
```

## rbenv本体インストール

```bash:ダウンロード→zipの解凍→配置まで。
$ sudo bash
$ cd /opt/ruby
$ apt-get install -y git
$ git clone https://github.com/rbenv/rbenv.git /opt/ruby/.rbenv
$ cd /opt/ruby/.rbenv
$ ./src/configure && make -C src
$ exit
```

```
$ /opt/ruby/.rbenv/bin/rbenv init
$ type rbenv
```
```rbenv is /opt/ruby/.rbenv/bin/rbenv``` が出たらOK

#### ruby-buildインストール

```
$ sudo bash
$ git clone https://github.com/rbenv/ruby-build.git /opt/ruby/.rbenv/plugins/ruby-build
$ ./install.sh
$ exit
```
誰でもrubyを切り替えることが出来るように権限を開放する。

```bash:必要最小限の権限開放
$ chmod a+w /opt/ruby/.rbenv
```

### ruby インストール
```
$ rbenv install 2.4.0
```
2.4.0の部分は最新バージョンを調べて入れました。
以下の様なエラーが出ました。

```
Downloading ruby-2.4.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2
Installing ruby-2.4.0...

BUILD FAILED (Raspbian 8.0 using ruby-build 20161225)

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

Last 10 log lines:
installing capi-docs:         /home/pi/.rbenv/versions/2.4.0/share/doc/ruby
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev libreadline-dev` to fetch missing dependencies.

Configure options used:
  --prefix=/home/pi/.rbenv/versions/2.4.0
  LDFLAGS=-L/home/pi/.rbenv/versions/2.4.0/lib
  CPPFLAGS=-I/home/pi/.rbenv/versions/2.4.0/include
```

メッセージに従ってパッケージを追加インストールしてから、
rubyインストール再挑戦

```
$ sudo bash
$ apt-get install -y libssl-dev libreadline-dev
$ exit
$ rbenv install 2.4.0
Downloading ruby-2.4.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2
Installing ruby-2.4.0...
Installed ruby-2.4.0 to /home/pi/.rbenv/versions/2.4.0
```

今度はうまくいきました。＼(^o^)／
と思ったら、、、、インストール先が/home/piになってましたorz
/opt/ruby/.rbenv配下にしたいので、やり直しします。

```bash
（pi ユーザ）
$ cd ~
$ rm -rf .rbenv 
$ export HOME=/opt/ruby
$ rbenv install 2.4.0
$ export HOME=/home/pi
```
、、、、スマートじゃない。。。
```CONFIGURE_OPTS``` とか ```RUBY_CONFIGURE_OPTS``` を ```/opt/ruby/.rbenv/versions``` に
設定してみましたが、インストールに失敗したので、やむなくこの形で無理やり入れました。

### 仕上げ

```bash:rbenvお約束
$ rbenv rehash
$ rbenv global 2.4.0
```

## 細かい環境の整備

全員ログイン時にrbenvの環境を使えるようにする。

```bash:環境変数の編集（新規ファイル。自動で読み込んでくれます）
vi /etc/profile.d/rbenv.sh
```

```bash:環境変数の編集内容
export RBENV_ROOT=/opt/ruby/.rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
```



あとはインストールできたか確認する。

```bash:起動確認
ruby -v
gem -v
gem list
```