rbenvでruby2.1.0-devがインストールできなかったのでなんとかしたメモ

ruby2.1.0でrails4を動かして
`pry>>Gem::VERSION`を調べたいなと思っていたら出だしでハマった。

```zsh:zsh

/usr/local/rbenv% rbenv install 2.1.0-dev

Downloading openssl-1.0.1e.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/66bf6f10f060d561929de96f9dfe5b8c
Installing openssl-1.0.1e...
Installed openssl-1.0.1e to /usr/local/rbenv/versions/2.1.0-dev

Cloning https://github.com/ruby/ruby.git...
Installing ruby-2.1.0-dev...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645
Results logged to /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645.log

Last 10 log lines:
cp libssl.pc /usr/local/rbenv/versions/2.1.0-dev/openssl/lib/pkgconfig
chmod 644 /usr/local/rbenv/versions/2.1.0-dev/openssl/lib/pkgconfig/libssl.pc
cp openssl.pc /usr/local/rbenv/versions/2.1.0-dev/openssl/lib/pkgconfig
chmod 644 /usr/local/rbenv/versions/2.1.0-dev/openssl/lib/pkgconfig/openssl.pc
/var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645 /usr/local/rbenv
/usr/local/rbenv
/var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645 /usr/local/rbenv
Cloning into 'ruby-2.1.0-dev'...
/var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645/ruby-2.1.0-dev /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215142636.47645 /usr/local/rbenv
/usr/local/rbenv/plugins/ruby-build/bin/ruby-build: line 393: autoconf: command not found

```

ruby-buildというシェルスクリプトの中でautoconfというコマンドが上手くいってないらしい。

あとopensslがなかったので`brew install`しといた

`rbenv install 2.1.0-dev`

すると進展アリ。


>autoconfとは
>
>移植性の高いソフトウェアを開発するには対応するシステムに対する深い知識が必要になりますが、開発者自身が、インストールされる可能性のあるすべてのシステム固有の問題を考慮しながら開発するのは極めて困難です。>autoconfをはじめとする一連のツール群はそういった固有の問題を回避するための雛形を作成し、スムーズにより移植性の高いプログラムの開発をサポートするツール群です。

[autoconfの使用方法](http://homepage2.nifty.com/hippos/autoconf/)より

というわけなので
`brew install autoconf`
しておく
.zshrcで`export PATH="/usr/local/Cellar/autoconf/2.69/bin:$PATH"`
にPATHも通しておかないとautoconfコマンドは使えない


```zsh:zsh

/usr/local/rbenv% RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.1e rbenv install 2.1.0-dev

Cloning https://github.com/ruby/ruby.git...
Installing ruby-2.1.0-dev...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215152037.8494
Results logged to /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215152037.8494.log

Last 10 log lines:
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for cd using physical directory... cd -P
checking whether CFLAGS is valid... yes
checking whether LDFLAGS is valid... no
configure: error: something wrong with LDFLAGS="-L'/usr/local/rbenv/versions/2.1.0-dev/lib' "

BUILD FAILED

Inspect or clean up the working tree at /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215152037.8494
Results logged to /var/folders/g3/w0tng20j6b7_1p82k5x9fmr00000gn/T/ruby-build.20131215152037.8494.log

Last 10 log lines:
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for cd using physical directory... cd -P
checking whether CFLAGS is valid... yes
checking whether LDFLAGS is valid... no
configure: error: something wrong with LDFLAGS="-L'/usr/local/rbenv/versions/2.1.0-dev/lib' "
make: *** No targets specified and no makefile found.  Stop.


```

エラーメッセージが変わった。
LDFLAGSライブラリパスを指定するための環境変数のようだ。
`/usr/local/rbenv/versions/2.1.0-dev/lib`
をチェックしてみる。

`/usr/local/rbenv/versions`
に2.1.0-devフォルダがそもそも存在しないのが問題なので、もっと前に問題は発生しているっぽい。

より前のrubyのバージョンでBUILD FAILEDが出るときはgccのpathや、pkgのバージョンが問題のきっかけらしいが、ruby2.1.0はどうだろうか。

エラーメッセージでググると自分の記事が出る絶望感を味わいながらもう少し考える。

---
追記

`LDFLAGS="-L'/usr/local/rbenv/versions/2.1.0-dev/lib' "`
に問題があるが

`Cloning https://github.com/ruby/ruby.git`
に失敗している。

手動で
`/usr/local/rbenv/versions`にruby2.1.0-devをクローンして進めるか・・・

---
追記２

`rbenv install -l`
で
`2.0.0p-353`
がリストに入っていないのがおかしいと思ったので

[rbenvとruby-buildでRuby環境を最新に保つのん](https://gist.github.com/mochiz/4736183)を参考に

```zsh:zsh

$ cd /usr/local/rbenv
$ git pull origin master
$ cd /usr/local/rbenv/plugins/ruby-build
$ git pull origin master

```

するとrbenvとruby-buildを最新版にできた。

続いて

`rbenv install 2.1.0-preview2`

が通った。

しかし

```zsh:zsh
rbenv global 2.1.0-preview2                           
rbenv versions             
   system
   2.0.0-p195
   2.0.0-p247
* 2.1.0-preview2 (set by /usr/local/rbenv/version)
rbenv rehash               
ruby -v
#=> ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]

```

うーむ
「preview2は使えないけどdev/preview1が使える」などあるのだろうか。

---

追記３

```zsh:.zshrc

export RBENV_ROOT=/usr/local/rbenv

```

している状態で

`export PATH=$RBENV_ROOT/shims:$PATH `

をコマンドラインで打ってやると

（効果あるかわからんけど`/usr/local/rbenv/versions/2.0.0-p247% cp -a shims ../2.1.0-preview1/shims`だけしといた）

rbenv globalで正常にrubyのバージョンが変更できました。

`ruby 2.1.0dev (2013-09-22 trunk 43011) [x86_64-darwin12.4.0]`