llenv を使って fluentd をインストールしてみた

llenv とは?

perl の perlbrew とか ruby の rbenv とか node の nvm とかいった、複数バージョンの言語環境をユーザローカルでインストール・実行できるツールを、統一的に扱うことのできるツール。

一つの言語だけならそんなに問題はないのだけど、複数の言語を触っていると、あれ? この設定どうやるんだっけ? って事が多いので統一インタフェースで利用できいるのはとても便利です。

環境

OS : CentOS 5.7 (x86_64)
Sakura の VPS 512 です。

手順

説明面倒なので、やったことだけ。

llenv のインストール

$ curl -kL https://raw.github.com/riywo/App-llenv/master/llenv-install | bash

llenv 用の設定

$ cat >> ~/.zshrc <<'EOL'
export LLENV_ROOT=$HOME/llenv
export LLENV_OSTYPE=`$LLENV_ROOT/bin/ostype`
export PATH=$LLENV_ROOT/bin:$PATH
EOL
$ source ~/.zshrc

ruby 1.9.3p0 を使えるようにする

$ llinstall init ruby
$ llinstall install ruby 1.9.3-p0
$ llinstall exec ruby 1.9.3-p0 -- -v # 確認
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

ruby gems インストール用の作業ディレクトリを作って、インストール

$ llenv setup gems -l ruby -v 1.9.3-p0
$ cd ~/llenv/apps/gems/
$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.15.tgz
$ tar xvf rubygems-1.8.15.tgz
$ mv rubygems-1.8.15/* ./
$ mv rubygems-1.8.15/.* ./
$ llenv exec ruby -- setup.rb
$ llenv exec gem -- -v  # 確認
1.8.15

fluentd のインストール

$ llenv exec gem -- install fluentd

fluentd の作業ディレクトリを作って、そこにセットアップ

$ llenv setup fluentd -l ruby -v 1.9.3-p0
$ llenv exec fluentd -- --setup .
$ llenv exec fluentd -- -c fluent.conf -vv &
$ echo '{"json":"message"}' | llenv exec fluent-cat  -- debug.test  # 確認

最後に

CentOS だと、 lsb_release がなく、llenv/bin/ostype がまともに動かなかったので、
実際には

export LLENV_OSTYPE=CentOS-5.7-x86_64

としてます。

CentOS でも動くようにパッチを送ったので、取り込まれると嬉しいなぁ。
https://github.com/do-aki/App-llenv/commit/1f3d6ff266079aa1169f95caafc3b4947bf286d2

素敵なツールを開発してくださった [twitter:@riywo] さんに感謝!


参考

ハッカソンに行って来てllenvをリニューアルしました
http://blog.riywo.com/2012/01/08/200329
riywo/App-llenv - GitHub
https://github.com/riywo/App-llenv
Fluentd’s documentation
http://fluentd.org/doc/
Fluentd meetup in Japan on Zusaar
http://www.zusaar.com/event/193104