rbenvのセットアップ&操作方法(Mac)

## はじめに

Re:VIEWのセットアップでrbenvの利用を推奨していたため、導入することにしました。
https://github.com/TechBooster/C89-FirstStepReVIEW-v2/blob/develop/articles/setup.re

## 「rbenv」とは？

Rubyのバージョンを管理するツールです。
rbenvを使うことで、開発環境と本番環境や、他の人とRubyのバージョンを合わせることが容易になります。

## 環境

- OS：macOS Mojave 10.14.3
- rbenv：1.1.2

## セットアップ

### rbenvのインストール

Homebrewからインストールします。

```shell-session
$ brew install rbenv
```

`~/.bash_profile` に以下を追記し、パスを通します。

```bash:.bash_profile
export RBENV_ROOT="$HOME/.rbenv"
if [ -d "${RBENV_ROOT}" ]; then
  export PATH="$HOME/.rbenv/bin:$PATH"
  eval "$(rbenv init -)"
fi
```

`~/.bash_profile` をリフレッシュし、 `~/.rbenv` フォルダを作成して `rbenv init` を実行します。

```shell-session
$ source ~/.bash_profile
$ mkdir ~/.rbenv
$ rbenv init
```

`~/.rbenv` フォルダに「shims」と「versions」フォルダが作成されていればOKです。

### rbenvのインストール確認

以下のコマンドを実行し、rbenvが正しく設定されていることを確認します。

```shell-session
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20190423)
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/Users/{ユーザー名}/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: warning
  Please remove `--user-install' flag from `/Users/{ユーザー名}/.gemrc'.
Auditing installed plugins: OK
```

私の場合、RubyGemsの設定で警告が出ていたので、指示通り `~/.gemrc` から `--user-install` フラグを削除します。
(何か意味があって書いたのですが、忘れてしまいました…)

```diff:.gemrc
- gem: "--user-install"
```

`~/.gemrc` をリフレッシュし、再度実行して全てOKになることを確認します。

```shell-session
$ source ~/.gemrc

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20190423)
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/Users/{ユーザー名}/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK
```

## 操作方法

### Rubyのインストール

以下のコマンドを実行し、任意のバージョンのRubyをインストールします。

```bash
# インストールできるRubyのバージョンを確認する
$ rbenv install -l
Available versions:
  1.8.5-p52
  1.8.5-p113
  …
  2.6.2
  2.6.3
  2.7.0-dev
  2.7.0-preview1
  jruby-1.5.6
  …

# 最新版をインストールする
$ rbenv install 2.6.3
```

### Rubyのバージョン切替

`rbenv global` コマンドでグローバルなRubyのバージョンを設定します。

```shell-session
$ rbenv global 2.6.3
```

`rbenv local` コマンドでローカル(カレントフォルダ以下のみ有効)なRubyのバージョンを設定することもできます。

```shell-session
$ rbenv local 2.6.3
```

### Rubyのバージョン確認

`rbenv versions` コマンドでRubyのバージョンがインストールされ、切り替わっていることを確認します。

```shell-session
$ rbenv versions
  system
* 2.6.3 (set by /Users/{ユーザー名}/.rbenv/version)
```

対象バージョンの先頭に「*」が付いていればバージョンが切り替わっています。

### Bundlerのセットアップ

Gemのパッケージ管理ツールであるBundlerも併せてセットアップするといいです。

Bundlerのセットアップについては以下の記事をご参照ください。
https://qiita.com/uhooi/items/4abf8c282ae23a259e4f

## おまけ: `rbenv rehash`

以下の場合にshimをインストールするため、 `rbenv rehash` コマンドを実行します。

- Rubyの新しいバージョンのインストール後
- コマンドを提供するgemのインストール後

参考: https://github.com/rbenv/rbenv#rbenv-rehash

ただ現在では自動で行ってくれるようで、手動で実行する必要はないとのことです。

https://twitter.com/k_katsumi/status/1375730080593313794?s=20

## おわりに

pyenvと操作方法が同じであり、導入しやすかったです。

これでRe:VIEWをセットアップできるので、執筆頑張るぞ:writing_hand:

## 参考リンク

- [rbenv/rbenv: Groom your app’s Ruby environment](https://github.com/rbenv/rbenv)