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
OSX、ruby バージョンによっては、いくつか事前準備が必要になる。 今回は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
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 がいいらしい。