0. 前書き
ついにWindowsにもRuby(Installer)の 2.1 がやってまいりました!(ちょっと前ですけどね)
ということでfluentd Windows版もRuby 2.1で動かします!
といってもやることは基本こちらの投稿と変わりませんが、2点異なる点があります。
変更点のみ記述します。
1. Ruby 2.1のインストール
Windowsでfluentdを動かす の「1. Windows用Rubyの導入」ではRubyの2.1系を選びましょう。
2015/01/13 追記
kiyotoさんよりOpenSSL POODLE関連によりgemコマンドが使えないという点についてコメント頂きました。ありがとうございます。以下引用します。こちらですが、OpenSSL POODLE事件により、現在だとRubyInstallerで同梱されているgemコマンド (v2.2.2)が使えなくなっております。解決策としては、gemコマンドをv2.2.3に上げる必要がありますが、gemがrubygemsと通信できなくなっているため、gem update --systemが使えません。
具体的には、ビルドされたgemコマンドインストールスクリプトを使うことになります。詳細はこちら>
https://gist.github.com/luislavena/f064211759ee0f806c88
2. fluentd gemパッケージ
Windowsでfluentdを動かす の「1. Windows用Rubyの導入」の「4. ダウンロードファイルに含まれているgemパッケージを使ってインストール」では pkg\fluentd-0.10.46.gem をインストールしていますが、現時点(2014/12/08)のpkgフォルダには fluentd-0.10.46.win141021001.gem というパッケージが含まれています。こちらをインストールします。
gem install fluentd-0.10.46.win141021001.gem
やや変則的なパッケージング/バージョニングですが、事情もあるようです。まぁ大目にみましょう。
3. その他
Windows上のRuby 2.1 ではコマンドプロンプトに対するシグナルの出方?が今までと違うみたいです。上記のfluentd Windows版ではその辺りの対応とバグ修正がおこなわれています。
以前のパッケージを利用するとfluentdの終了時に終了できず、CPUの使用率が異常にあがる状況が発生します。
また、その他Windows操作に関わるライブラリが自前ではなくdjberg96さんのものに、ごそっと入れ替わっており、コードの可読性とエラーのハンドリングの妥当性が向上しています。気になる人は注意しましょう。
2015/03/16 追記
@nidcodeさんより頂きました。ありがとうございます。
上記手順でfluentdの導入自体は完了しますが、実行時にmsgpackのLoadErrorがおきることがあります。この場合以下の手順で回避可能です。
gem uninstall msgpack
gem install msgpack --platform=ruby
本件、msgpackの中の人@nahiさんより以下のコメントをもらっていますので、参考にしてください。
https://github.com/msgpack/msgpack-ruby/issues/38
おわり。