Logstash插件开发

时间:2017-05-18 14:11:22

标签: ruby logstash jruby

我正在尝试为logstash开发一个输入插件。

我已经使用过这个教程

http://blog.eagerelk.com/how-to-write-a-logstash-plugin/

我尝试安装"捆绑"时遇到的问题使用"捆绑安装"

- 这是错误消息

您的Ruby引擎是ruby,但您的Gemfile指定了jruby

- Gemfile:

来源' https://rubygems.org' ruby' 2.2.0',:engine => ' jruby',:engine_version => ' 2.3.1' gemspec

- ruby​​ -v:

ruby​​ 2.2.0p0(2014-12-25修订版49005)[x86_64-darwin16]

- jruby -v:

jruby 9.1.8.0(2.3.1)2017-03-06 90fc7ab Java HotSpot(TM)64位服务器VM 25.92-b14 on 1.8.0_92-b14 + jit [darwin-x86_64]

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

由于您使用的是rbenv,因此以下是一些不错的故障排除步骤:

  • 确保您的PATH包含/path/to/your/home/directory/.rbenv/shims或某些类似的变体。
  • 您的shell eval "$(rbenv init -)"文件中还需要.bash|zsh|whateverrc
  • 如果这些都是有序的,请检查.ruby-version文件。切换到您正在处理的项目的目录并调用cat .ruby-version
    • 如果没有,只需创建一个具有此名称的新文件,并在其中放置适当的JRuby版本字符串。检查可用版本的好方法是rbenv install --list,但最新版本(来自我的本地ruby-build)是jruby-9.1.7.0
  • 现在调用rbenv install。如果您不想制作文件/想跳过此步骤,请运行rbenv install jruby-9.1.7.0
  • rbenv rehash; bundle现在应该可行了。

答案 1 :(得分:0)

看起来您的捆绑包正在尝试使用系统的默认Ruby版本而不是使用JRuby。

我建议您卸载之前安装的所有Ruby,以便再次清理系统。

之后,请确保PATH正确无误 如果您正在使用bash,则~/.bashrc~/.bash_profile应具有以下命令:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

如果你正在使用zsh,这些命令必须位于~/.zshrc

之后,输入您的项目目录并创建一个新文件.ruby-version

echo 'jruby-9.1.7.0' > .ruby-version

注意:您可以使用命令rbenv install --list查看其他可用版本。

最后,离开目录,再次输入,然后运行以下命令:

rbenv install jruby-9.1.7.0
gem install bundler # to install the bundler gem in the context of your new JRuby 9.1.7.0
bundle install      # to install the gems listed in your Gemfile