読者です 読者をやめる 読者になる 読者になる

rbenvでruby2.0.0-p0のインストール

ruby

ruby-buildをアップデートしたら

$ brew update
$ brew upgrade ruby-build

2.0.0-p0がきてたので

$ rbenv install
...
2.0.0-p0
...

インストールしようとしたらエラった。

$ rbenv install 2.0.0-p0
Downloading openssl-1.0.1e.tar.gz...
-> https://www.openssl.org/source/openssl-1.0.1e.tar.gz
Installing openssl-1.0.1e...
Installed openssl-1.0.1e to /Users/xxx/.rbenv/versions/2.0.0-p0

Downloading ruby-2.0.0-p0.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
Installing ruby-2.0.0-p0...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/8c/vgm8fdh97qd4y3c61wd2003m0000gn/T/ruby-build.20130225075459.58371
Results logged to /var/folders/8c/vgm8fdh97qd4y3c61wd2003m0000gn/T/ruby-build.20130225075459.58371.log

Last 10 log lines:
installing default gems:      /Users/xxx/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
                              bigdecimal 1.2.0
                              io-console 0.4.2
                              json 1.7.7
                              minitest 4.3.2
                              psych 2.0.0
                              rake 0.9.6
                              rdoc 4.0.0
                              test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

OpenSSLをインストールして

$ brew install openssl

configureのオプションを指定したんだけどエラーメッセージが変わった。

$ RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`" rbenv install 2.0.0-p0
Downloading ruby-2.0.0-p0.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
Installing ruby-2.0.0-p0...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/8c/vgm8fdh97qd4y3c61wd2003m0000gn/T/ruby-build.20130225085320.23480
Results logged to /var/folders/8c/vgm8fdh97qd4y3c61wd2003m0000gn/T/ruby-build.20130225085320.23480.log

Last 10 log lines:
    0 enumerator.so

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

make: *** [.rbconfig.time] Abort trap: 6
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Abort trap: 6

そういえばOSX LionのデフォルトのGCCllvm-gcc)だとこけるんだっけと思ってgcc-4.2を指定したらできた。

$ CC=/usr/bin/gcc-4.2 RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`" rbenv install 2.0.0-p0
Downloading ruby-2.0.0-p0.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
Installing ruby-2.0.0-p0...
Installed ruby-2.0.0-p0 to /Users/hokamura/.rbenv/versions/2.0.0-p0
$ rbenv local 2.0.0-p0 
$ ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin11.4.2]

ヤッター。

キーワード引数使えちゃうぜー!ひゃほう!

$ irb
irb(main):001:0> def foo(a: 'b', c: 'd')
irb(main):002:1>   puts a
irb(main):003:1>   puts c
irb(main):004:1> end
=> nil
irb(main):005:0> foo(a: 'hoge')
hoge
d
=> nil

次にbundler入れて適当にインストールしてみようと思ったら

# Gemfile
source 'https://rubygems.org'

gem 'rails'
$ gem install bundler --pre
$ bundle install --path vendor/bundle
Unfortunately, a fatal error has occurred. Please see the Bundler 
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!

/Users/hokamura/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:917:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
...

なんかSSLでエラった。

証明書の問題っぽいのでググったら次のよう証明書を設定すればいいらしい。

$ brew install curl-ca-bundle
$ cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem

これでbundle installもデキター