あたらしい capistrano-rbenv 0.0.11 と CentOS 5.x と僕

先日書いた multistage 環境で capistrano-rbenv を使うときは rbenv_path の扱いに注意! という記事がきっかけで
capistrano-rbenv への修正パッチを取り込んでもらえました
id:yyuu さん、その節はありがとうございます。

そして、今日気がついたのですが、その修正が含まれた新しい capistrano-rbenv-0.0.11 がリリースされていました。
これで前回の記事で紹介したような :default_environment の設定は不要になります。
multistaging 環境でもそうでない環境でも、config/deploy.rb には

# rbenv setting
require 'capistrano-rbenv'
set :rbenv_ruby_version, '1.9.3-p374'

だけ書いておけば、あとは

$ cap deploy:setup

すれば rbenv 環境を構築することができます。
記述が少なくシームレスに rbenv が利用できるというのはとても素敵ですね :-)

CentOS 5.x で ruby 1.9.3 をビルドする

さて、前回の記事では書きそびれていましたが、実は CentOS 5.x 環境では rbenv と ruby1.9.3 を利用するのに
一手間必要だったりします。

ruby1.9.3 については RVM の記事では紹介したとおり、標準の autoconf が古い問題がありますが、
もうひとつ、rbenv を利用するための git がリポジトリに含まれていないという問題があります (EPEL には入っています)。

いつもであれば、git と autoconf をセットアップするための capistrano task を書くことになるのですが、
あちこちで似たようなものを書き続けていたのでさすがに飽きてきました。
そこで、CentOS 5.x と戦う capistrano 使いがコピペ疲れしないよう、capistrano-rbenv 用のタスクを gem 化してみました。
その名も capistrano-rbenv-ruby193deps-centos5 です。とてもストレートな名前ですね、はい。
一個前の記事で紹介した capistrano-platform-recognizer はこれを実現するためにつくったものです。*1

この capistrano-rbenv-ruby193deps-centos5 (長い…) を利用すると、config/deploy.rb の記述はこうなります。

# rbenv setting
require 'capistrano-rbenv'
require 'capistrano-rbenv-ruby193deps-centos5'
set :rbenv_ruby_version, '1.9.3-p374'

はい、ほとんど変わらないですね。


つい一週間前まで、僕の config/deploy.rb にはあれこれ rbenv まわりの記述があったのですが、今はこの 3行だけになりました。
おかげ様ですっきり週末を迎えることができそうです。

*1:ターゲットになるホストに CentOS 5.x 以外のホストが混じっていた場合はスルーされるようになっています