Mac OS X でのrbenvによるruby環境構築

「初心者なんで、rbenvで構築した環境にgemをそのままinstallでいいよねー」と思ってたけど、gemのversion違いとかで、そのうち涙目になりそうな気がしてきたので、真っ当な方法を模索してみました。

いくつ記事を漁ったところ、bundlerを使うのはもはや当然として、binstubs を使うとよさげでした。

http://serihiro.org/blog/2014/07/15/rvm-seppuku/ http://qiita.com/naoty_k/items/9000280b3c3a0e74a618 http://blog.takapra.com/2013/04/ruby-bundler-basic/

上の記事の流れをほぼトレースした感じになってしまいますが、導入までの手順をオレ memo として残しておきます。

1. rbenvのインストール

brew install rbenv
brew install ruby-build
brew install rbenv-gem-rehash

追記: 2017/03/10 https://github.com/rbenv/rbenv/pull/638/filesにより、rbenv-gem-rehash は不要になった模様。

プラグインも入れてしまう。

mkdir ~/.rbenv/plugins; cd ~/.rbenv/plugins
git clone https://github.com/ianheggie/rbenv-binstubs.git

2.bashrcの設定

zshrcは使えない派。

[[ -s "$HOME/.rbenv" ]] && export PATH="$HOME/.rbenv/bin:$PATH" && eval "$(rbenv init -)"

# for rbenv + bundler --binstubs
PATH=./vendor/bin:$PATH

3. rbenvの動作確認

$ rbenv -v
rbenv 0.4.0

$ rbenv install --list
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302

4. rubyのinstall

OSXruby バージョンによっては、いくつか事前準備が必要になる。 今回はYosemite(10.10.3) に ruby2.2.2 をインストールしたが、以下パッケージを brew でインストールした。

brew install openssl libyaml libffi readline
brew link openssl --force

openssl と readline のディレクトリを指定してインストール

cd $PROJECT_HOME
RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" ruby-build 2.2.2 ~/.rbenv/versions/my_project_ruby
rbenv local my_project_ruby

参照: blog.yukarien.com

5. bundlerのinstall

rbenv exec gem install bundler

6. bundle install

cd $PROJECT_HOME
bundle install --path=vendor/bundle --binstubs=vendor/bin

理由はわからないが、doc が vendor/bundle に展開されていなかった。以下、コマンドにて生成。

cd $PROJECT_HOME
bundle exec gem rdoc --ri --all

おまけその1 - ctags

Supercharge your VIM into IDE with CTags - sensible.io Blog を参考にしながら、tags を生成する。

group :development do
  gem 'guard-ctags-bundler'
end

Gemfileに追加して、再度 bundle install。

おまけその2 debugger

gem の debugger は ruby 2.0 以上はサポートしてないので、乗り換えるのが吉。

A fork of ruby-debug(19) that works on 1.9.2 and 1.9.3 and installs easily for rvm/rbenv rubies. ruby >= 2.0 are not supported - see below.

GitHub - cldwalker/debugger: port of ruby-debug that works on 1.9.2 and 1.9.3

byebug がいいらしい。