rbenvでRuby環境を構築する
SICPでやっているRubyによるSchemeインタプリタでどうしてもArray#to_h
が使いたくなったが、OSX Yosemiteに標準で付属しているRuby 2.0.0にはなかったので、rbenvを使ってみたときのメモ。
環境
- Mac OSX Yosemite 10.10.2
- Homebrew 0.9.5
rbenvのインストール
% brew install rbenv ruby-build
.zshrcに以下を追加。
% echo 'eval "$(rbenv init -)"' >> ~/.zshrc % source ~/.zshrc % rbenv --version rbenv 0.4.0
Rubyのインストール
インストール可能なRubyのリストを表示。
% rbenv install --list Available versions: 1.8.6-p383 ...
現時点の最新の安定版の2.2.2をインストール。ちょっと時間がかかる。
% rbenv install 2.2.2 Downloading ruby-2.2.2.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44 Installing ruby-2.2.2... Installed ruby-2.2.2 to /Users/uents/.rbenv/versions/2.2.2
バージョンをチェック。*
が付いているのが現在使っているバージョン。
% rbenv versions * system (set by /Users/uents/.rbenv/version) 2.2.2
バージョンの切換
僕の場合はSICPの作業ディレクトリだけバージョンを上げたいので以下のようにした。
% cd (作業ディレクトリ) % rbenv local 2.2.2
rubyのバージョンをチェックしてみる。
% ruby --version ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
それ以外のディレクトリはYosemite標準のまま。
% ruby --version ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
bundlerのインストール
rubygemsを使うとバージョン毎のパッケージ管理が難しそうなので、bundlerでパッケージを管理する。ただしbundlerだけはrubygemsで取得。
まずは.zshrcでgemのインストール先を指定。
% echo 'export GEM_HOME=$HOME/opt/gems' >> ~/.zshrc % echo 'export PATH=$GEM_HOME/bin:$PATH' >> ~/.zshrc % source ~/.zshrc
bundlerをインストール。
% cd ~ % gem install bundler
bundlerによるパッケージ取得
pryとrspecをインストール。
% cd (作業ディレクトリ) % bundle init
Gemfileを編集。
source 'https://rubygems.org' gem 'pry' gem 'rspec'
インストール。
% bundle install --path vendor/bundle
pryを動かしてみる。Array#to_h
が使えた!
% bundle exec pry [1] pry(main)> keys = [:a, :b, :c] => [:a, :b, :c] [2] pry(main)> vals = [1, 2, 3] => [1, 2, 3] [3] pry(main)> keys.zip(vals).to_h => {:a=>1, :b=>2, :c=>3}