llenv を使って fluentd をインストールしてみた(修正と追記)

bundler を使って入れ直す

[twitter:@riywo] さんから


という指摘をもらったので、bundler を使ってインストールしてみた。

$ cd ~/llenv/apps/fluentd/
$ llenv exec gem -- install bundle
$ cat > Gemfile <<EOF
heredoc> source :rubygems
heredoc>
heredoc> gem 'fluentd'
EOF
$ llenv exec bundle -- install --path vendor/bundle

これで、fluentd を動かすための環境全てを ~/llenv/apps/fluentd/ 以下に閉じ込めることができた。

いちぉ、前回インストールしてしまった分は削除しておく

$ llenv exec gem -- uninstall cool.io http_parser.rb json yajl-ruby iobuffer msgpack fluentd

fluentd を実行する場合は、 bundler を使って、

$ llenv exec bundle -- exec fluentd -c fluent.conf -vv

でも良いのだけど、どうやら

$ llenv exec fluentd -- -c fluent.conf -vv

でも動くみたい。

lsb-release について

CentOS には lsb_release が無いというのは誤りで、
redhat-lsb パッケージに含まれていました。(これも @riywo さんの指摘で知りました)

ただこれ、標準だと入ってないみたいですし、結局 /etc/redhat-release の値を使ってごにょごにょしてるだけだったり……。

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