Ruby Logstash插件开发

Ruby Logstash插件开发,ruby,logstash,jruby,Ruby,Logstash,Jruby,我正在尝试为logstash开发一个输入插件 我用过这个教程 当我尝试使用“bundle install”安装“bundle”时遇到的问题 -这是错误消息 您的Ruby引擎是Ruby,但您的Gemfile指定了jruby -档案: 源“” ruby'2.2.0',:engine=>'jruby',:engine\u version=>'2.3.1' gemspec -ruby-v: ruby 2.2.0p0(2014-12-25修订版49005)[x86_64-darwin16] -jruby

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

我用过这个教程

当我尝试使用“bundle install”安装“bundle”时遇到的问题

-这是错误消息

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

-档案:

源“” ruby'2.2.0',:engine=>'jruby',:engine\u 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,基于1.8.0_92-b14+jit[darwin-x86_64]


我在这里做错了什么?

因为您使用的是
rbenv
,下面是一些很好的故障排除步骤:

  • 确保您的
    路径
    包含
    /PATH/to/your/home/directory/.rbenv/shimmes
    或类似变体
  • 在shell的
    .bash | zsh | whateverrc
    文件中还需要
    eval“$(rbenv init-”
  • 如果一切正常,请检查
    .ruby版本
    文件。更改到您正在处理的项目的目录,并调用
    cat.ruby版本
    • 如果没有,就用这个名称创建一个新文件,并在其中放置一个合适的JRuby版本字符串。检查可用版本的一个好方法是
      rbenv install--list
      ,但最新版本(来自我的本地
      ruby build
      )是
      jruby-9.1.7.0
  • 现在调用
    rbenv安装
    。如果您不想创建文件/想跳过此步骤,只需运行
    rbenv安装jruby-9.1.7.0
  • rbenv再灰化;bundle
    现在应该可以工作了
看起来您的捆绑程序正在尝试使用系统的默认Ruby版本,而不是使用JRuby

我建议您卸载所有以前安装的Ruby,使您的系统再次干净

之后,确保您的
路径正确。
如果您正在使用bash,则
~/.bashrc
~/.bash\u配置文件
应具有以下命令:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
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
如果您使用的是zsh,这些命令必须驻留在
~/.zshrc

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

echo 'jruby-9.1.7.0' > .ruby-version
注意:您可以使用命令
rbenv install--list
查看其他可用版本

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

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
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

您在项目中使用的是
rvm
还是
rbenv
?我使用的是rbenv,您是否正确地创建了
.ruby版本
.ruby gemset
文件?看起来您的捆绑程序正在尝试使用系统的默认Ruby(而不是JRuby)。我如何验证这一点?@DavidS。是的,我知道。但是这些文件背后的概念是相同的:)是的,这就是问题所在,捆绑程序使用的是系统默认的Ruby版本。我已经卸载了所有以前的安装&这次我从Source构建了Ruby&Jruby,所以现在我不能使用export PATH=“$HOME/.rbenv/bin:$PATH“eval”$(rbenv init-)为什么?发生了什么事?