Ruby
Rails
capistrano
rbenv

rbenvをシステムワイドにインストールしてのCapistranoデプロイする時にRBENV_ROOTが$HOMEからのになって困った(><)

More than 1 year has passed since last update.

http://office.tsukuba-bunko.org/ppoi/entry/systemwide-rbenv
こんな風に /usr/local/rbenv にインストールした後、デプロイしようとして

(master) $ bundle exec cap production deploy
 DEBUG [0178f860] Running [ -d $HOME/.rbenv/versions/2.3.1 ] as myapp@x.x.x.x
 DEBUG [0178f860] Command: [ -d $HOME/.rbenv/versions/2.3.1 ]

こんな感じになってしまったらインストールが失敗してしまう(当たり前)。サーバー側のrbenvは$HOMEと関係ないとこに入ってるのだから。

capistrano/rbenvがこのパスを操作しているらしいことはrequireを消したりしてみたらわかった。とりあえずその周辺が怪しい。

http://qiita.com/hmuronaka/items/d8edd5bb252711684b99

こちらを確認してたらrbenvについてのオプションがあった。下記のような内容にしたらいいんだなー。

set :rbenv_ruby, '2.3.1'
set :rbenv_path, '/usr/local/rbenv'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"

rbenv_path の指定が大事ですよということで。

あと、こちらによると default_environmentの設定も大事ですよと。
http://tk0miya.hatenablog.com/entry/2013/02/18/115433

あんまりcapistranoいじり倒したことなくて、相談受けた時にすぐにわからんかった。まだまだ修行が足らんのう。