諸事情によりこのバージョンとあと 10 年は付き合う可能性が出てきたので……。モンキーパッチ職人となる可能性すらある(しろめ)。 今回は MacOSX 10.11.3 ( El Capitan ) で rbenv と ruby-build 導入済みの環境で作業しますた。Linux 版は後日改めて書く予定です。
インスコする
成功したけど openssl 読み込めなくてだめなパターン
user-no-MacBookPro:work_dir USER$ brew update && brew upgrade ruby-build user-no-MacBookPro:work_dir USER$ rbenv versions ... 1.8.7-p249 1.8.7-p302 1.8.7-p334 1.8.7-p352 1.8.7-p357 1.8.7-p358 1.8.7-p370 1.8.7-p371 1.8.7-p374 1.8.7-p375 ... user-no-MacBookPro:work_dir USER$ rbenv install 1.8.7-p375 Checking out http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7... Installing ruby-1.8.7-p375... Installed ruby-1.8.7-p375 to /Users/USER/.rbenv/versions/1.8.7-p375 Downloading rubygems-1.6.2.tgz... -> https://dqw8nmjcqpjn7.cloudfront.net/cb5261818b931b5ea2cb54bc1d583c47823543fcf9682f0d6298849091c1cea7 Installing rubygems-1.6.2... Installed rubygems-1.6.2 to /Users/USER/.rbenv/versions/1.8.7-p375 user-no-MacBookPro:work_dir USER$ rbenv versions system * 1.8.7-p375 (set by /Users/USER/Workspace/test/.ruby-version)
入りもうした。動作確認しましょ。
user-no-MacBookPro:work_dir USER$ irb irb(main):001:0> require 'openssl' LoadError: no such file to load -- openssl from (irb):1:in `require' from (irb):1 irb(main):002:0> exit
オッヴェッ?! openssl 1 系がインストールされてる環境で使いたいから rbenv を選んだの!なんでだめなの!
小細工して openssl 使えるようにする
user-no-MacBookPro:work_dir USER$ rbenv uninstall 1.8.7-p375 user-no-MacBookPro:work_dir USER$ rbenv versions * system user-no-MacBookPro:work_dir USER$ brew install openssl readline user-no-MacBookPro:work_dir USER$ CONFIGURE_OPTS="--disable-install-rdoc --with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 1.8.7-p375 Checking out http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7... Installing ruby-1.8.7-p375... Installed ruby-1.8.7-p375 to /Users/USER/.rbenv/versions/1.8.7-p375 Downloading rubygems-1.6.2.tgz... -> https://dqw8nmjcqpjn7.cloudfront.net/cb5261818b931b5ea2cb54bc1d583c47823543fcf9682f0d6298849091c1cea7 Installing rubygems-1.6.2... Installed rubygems-1.6.2 to /Users/USER/.rbenv/versions/1.8.7-p375 user-no-MacBookPro:work_dir USER$ rbenv versions system * 1.8.7-p375 (set by /Users/USER/Workspace/test/.ruby-version)
オプションつけて再インストールしました。んじゃ試してみましょ!
user-no-MacBookPro:work_dir USER$ irb irb(main):001:0> require 'openssl' => true
やったああああ。
まとめ
Ruby 2.0 以降であれば rbenv が自動的に面倒みてくれると風のうわさで聞きましたが、それ以前のバージョンは CONFIGURE_OPTS を渡すことでしか対策できないようです。ちなみに、brew でインストールした openssl と readline の prefix ですが、環境によっては /usr/local だったり /usr/local/opt だったりと差があるようなので、やっぱ brew --prefix して確認するしかないすね。