rbenvでMacにRuby 2.2.1 インストール（オプション指定最新版

1.9.3をインストールした頃とオプションが変わってきたので、自分用メモ書きを兼ねてアップします。
環境は Mavericks 10.9.5 です。
# ruby-build 更新
まずインストールする前に、何らかの方法で ruby-build を更新してください。更新しないと `rbenv install 2.2.1` できませんので。
## Homebrew を使ってインストールしている場合
~~`brew update ruby-build`~~ `brew upgrade ruby-build` で良いでしょう。
## git を使ってインストールしている場合
ruby-build を `git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build` でインストールしている場合には、 rbenv-update プラグインを入れておくと良いですね。入れておけば `rbenv update` だけで ruby-build を更新できます。
`git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update` でインストール。
参考：[rbenv使うならこれもいれとけプラグイン4選 - Code Life](http://blog.code-life.net/blog/2014/05/07/recommended-rbenv-plugin/)

上記参考リンクに挙がっているプラグイン４つを改めてリスト

- ruby-build（当然w）
- rbenv-update
- rbenv-default-gems
- rbenv-gem-rehash

これらは入れておくと便利です。ただ、[この Pull Request で rbenv-gem-rehash プラグインが不要になった](https://github.com/sstephenson/rbenv/pull/638)との[投稿](http://qiita.com/dagezi/items/e95b5c6dee6a9728e8c6#comment-9ed84c38709ad6d077ee)もみました（状況未確認）。
私としては、これらに加えて、パッチバージョン違いでも共通 gem を使ってくれる

- rbenv-communal-gems

も追加したいところです。（参考：[rbenv-communal-gemsインストール（トラブル含） - 別館 子子子子子子（ねこのここねこ）](http://d.hatena.ne.jp/riocampos+tech/20141018/rbenv_communal_gems)）

## anyenv を使ってインストールしている場合
私の環境では anyenv を使ってスクリプト管理をしています。さらに anyenv-update プラグインを入れて更新可能にしています。ので `anyenv update` のみでOKです。
参考：

- [anyenvという**env系の簡易マネージャを作った - As a Futurist...](http://blog.riywo.com/2013/06/22/155804)
- [anyenvやrbenvのpluginsの更新などをしやすくするプラグインを作った - @znz blog](http://blog.n-z.jp/blog/2013-11-21-anyenv-rbenv-plugins.html)
- [anyenvをインストール＆Homebrewでインストール済のrbenvと互換を取る - 別館 子子子子子子（ねこのここねこ）](http://d.hatena.ne.jp/riocampos+tech/20141019/install_anyenv)
- [anyenvをインストール２ - 別館 子子子子子子（ねこのここねこ）](http://d.hatena.ne.jp/riocampos+tech/20141019/install_anyenv2)
- [anyenvをインストール３（gemの調子が悪くなった - 別館 子子子子子子（ねこのここねこ）](http://d.hatena.ne.jp/riocampos+tech/20141019/install_anyenv3)

# CONFIGURE_OPTS（RUBY_CONFIGURE_OPTS）オプションについて
## 不要になったオプション
###  --with-openssl-dir
1.9.3までであれば CONFIGURE_OPTS（または RUBY_CONFIGURE_OPTS） に OpenSSL 関連のファイルの場所などを設定してやらないと Homebrew で入れた OpenSSL を見てくれなかったのですが、2.0.0以降は ruby-build 側で自動的に見てくれる設定が含まれたので **指定不要になりました** 。
### --with-readline-dir
pry や irb で日本語などを表示させるために必要だった readline 関係の設定も、2013年12月以降は **不要になりました** 。 Homebrew でインストールした readline を自動的に見てくれます。
（参考：[Auto-detect and link to Homebrew's readline · 94c15a5 · sstephenson/ruby-build](https://github.com/sstephenson/ruby-build/commit/94c15a54f0a804d5deeaf636c9666bfea796cd28)）
##おすすめオプション
### --disable-install-rdoc
rdoc のインストールを省略します。インストールが[かなり早くなります](http://boscono.hatenablog.com/entry/2014/08/10/155524)。

参考：

- [rbenvでrubyのインストール - Qiita](http://qiita.com/merrill/items/ca11e6288e88879bacad)
- [./configure --disable-install-rdoc - てきとうなメモ](http://boscono.hatenablog.com/entry/2014/08/10/155524)

### --enable-shared
ダイナミックリンクを作りたい場合。
> --enable-sharedというのはrubyコマンドのほとんどをダイナミック リンクライブラリ（libruby.so）として外に出すオプションだ。 必須でないプラットホームでも --enable-shared を付けておくと eruby や mod_ruby を作るときにダイナミックリンクになるので 便利である (でなければスタティックリンクになる)。
[rubyビルドガイド](http://loveruby.net/ja/rhg/cd/build.html)

以前に qtbindings gem をインストールしたときに必要だったので、それ以降はこのオプションを付けています。
# 個人的なおすすめオプション設定を付けてインストールしてみる
```bash
$ CONFIGURE_OPTS="--disable-install-rdoc --enable-shared" rbenv install 2.2.1
Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...
Installed ruby-2.2.1 to /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.1

Communized gems for 2.2.1
```
--disable-install-rdoc を使っているのでインストールが早いです。
anyenv を使っていますのでインストール先が rbenv 単独の場合と異なります。
rbenv-communal-gems プラグインを使っているので末尾に `Communized gems for 2.2.1` と表示されています。
## バージョン確認
```bash
$ rbenv global 2.2.1
$ ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin13]
```
## OpenSSL 動作確認
```ruby
$ pry
[1] pry(main)> require 'openssl'
=> true
[2] pry(main)> OpenSSL::OPENSSL_VERSION
=> "OpenSSL 1.0.2 22 Jan 2015"
```
Homebrew でインストールした 1.0.2 が使われています。
## readline 動作確認
```ruby
[3] pry(main)> Readline::VERSION
=> "6.3"
[4] pry(main)> "日本語にほんご"[-4..-1]
=> "にほんご"
```
こちらも Homebrew でインストールした 6.3（6.3.8）が使われています。

#補足：rbenv-communal-gemsを使っている場合の注意事項
2.2.1を入れたからといって、古い2.2.0をすぐ削除すると、 gem に不具合が出ます（そのうちくわしく調べなきゃいけない…）。

```bash
$ rbenv uninstall 2.2.0
rbenv: remove /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.0? y
$ pry
/Users/riocampos/.anyenv/envs/rbenv/libexec/rbenv-exec: /Users/riocampos/.anyenv/envs/rbenv/gems/2.2.0/bin/pry: /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.0/bin/ruby: bad interpreter: No such file or directory
/Users/riocampos/.anyenv/envs/rbenv/libexec/rbenv-exec: line 47: /Users/riocampos/.anyenv/envs/rbenv/gems/2.2.0/bin/pry: Undefined error: 0
```
pry のバイナリが Ruby 2.2.0 のバイナリを呼んでるのでエラーになってますorz（ rbenv-communal-gems はそのあたり解決してくれないのか…
仕方ないので `pry` を一旦削除して入れ直してみます。

```bash
$ gem uninstall pry pry-doc
Successfully uninstalled pry-doc-0.6.0
Remove executables:
	pry

in addition to the gem? [Yn]  y
Removing pry
Successfully uninstalled pry-0.10.1
$ gem install pry pry-doc
Fetching: pry-0.10.1.gem (100%)
Successfully installed pry-0.10.1
Fetching: pry-doc-0.6.0.gem (100%)
Successfully installed pry-doc-0.6.0
2 gems installed
```
 `pry` インストール出来ました。2.2.0で入れた twitter gem でも試しに呼んでみましょう。

```
$ pry
[1] pry(main)> require 'twitter'
LoadError: dlopen(/Users/riocampos/.anyenv/envs/rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/http_parser.rb-0.6.0/lib/ruby_http_parser.bundle, 9): Library not loaded: /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.0/lib/libruby.2.2.0.dylib
  Referenced from: /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/http_parser.rb-0.6.0/lib/ruby_http_parser.bundle
  Reason: image not found - /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/http_parser.rb-0.6.0/lib/ruby_http_parser.bundle
from /Users/riocampos/.anyenv/envs/rbenv/versions/2.2.1/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
```
こちらでも Ruby 2.2.0 のときの libruby.2.2.0.dylib が必要なのに存在しないのでエラーになってます。
（解決方法探さなきゃなぁ…