Fluentdで未リリース / フォークしたプラグインを気軽に入れる
Flutentdで未リリースのプラグインを入れるときのための覚書です。
以下のようなときに役立つかと思います。
- Fluentdプラグインの最新の修正がリリースされていない
- Fluentdプラグインをちょっとフォークして使いたい
Fluentdのプラグインには大変お世話になっているのですが、たまに困るのがプラグインがリリースされていなかったり、メンテが止まっていたりするときです。
td-agent-gem / fluent-gem
はいずれも gem
コマンドのラッパーなので、RubyGems上でリリースされていないプラグインをインストールすることができません。
この課題を解決するにはどうすればいいでしょうか。2つほど方法が考えられます。
- Bundlerを使う
-
specific_install
を使う
Bundler
を使う
おそらく、こちらが定番なのではないかと思います。Bundlerを使う方法です。
公式にもドキュメントがあります。
BundlerとGemfileの扱い方については、Railsを触っていればもう勝手は分かっているものではないかと思いますので割愛します。GitHubからのインストールもかんたんです。
specific_install
を使う
とはいえ、Gemfileを用意して、となると少々構えが大きくなるのは事実です。
もっと気軽に入れたい場合には、specific_install
を使う方法があります。今回メインで書きたいのはこちらです。
specific_install
はgemをGitHubのリポジトリから直接インストールできるようにしてくれるgemです。
なお、わたしはこちらの記事でこのgemを知りました。ありがとうございます。
このspecific_install
、もちろんtd-agent-gem / fluent-gem
でも使えます。
以下のようにGitHub上のリポジトリを直接指定してインストールすることができます。
$ td-agent-gem install specific_install
$ td-agent-gem specific_install https://github.com/foo/fluent-plugin-bar.git
オプションでブランチを指定したりもできます。
ちゃんと運用するのであればBundlerがよいかと思いますが、ごく一部のプラグインだけフォークしたものを使いたいというときは、こちらの方法も良いかと思います。
Discussion