【问题标题】:Logstash plugin developmentLogstash 插件开发
【发布时间】:2017-05-18 14:11:22
【问题描述】:

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

我用过这个教程

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

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

- 这是错误信息

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

- 宝石文件:

来源'https://rubygems.org' ruby '2.2.0', :engine => 'jruby', :engine_version => '2.3.1' 宝石规格

- 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-Bit Server VM 25.92-b14 on 1.8.0_92-b14 +jit [darwin-x86_64]

我在这里做错了什么?

【问题讨论】:

  • 您在项目中使用的是rvm 还是rbenv
  • 我正在使用 rbenv
  • 您是否正确创建了.ruby-version.ruby-gemset 文件?看起来您的捆绑器正在尝试使用系统的默认 Ruby(而不是 JRuby)。
  • 如何验证?
  • @DavidS。是的,我知道。但是这些文件背后的概念是相同的:)

标签: ruby logstash jruby


【解决方案1】:

由于您使用的是rbenv,以下是一些很好的故障排除步骤:

  • 确保您的 PATH 包含 /path/to/your/home/directory/.rbenv/shims 或一些类似的变体。
  • 您的 shell 的 .bash|zsh|whateverrc 文件中还需要 eval "$(rbenv init -)"
  • 如果一切正常,请检查.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 现在应该可以工作了。

【讨论】:

    【解决方案2】:

    看起来您的捆绑器正在尝试使用系统的默认 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
    

    【讨论】:

    • YES,这就是问题所在,bundler 使用的是系统默认的 Ruby 版本
    • 我已经卸载了所有以前的安装,这次我从源代码构建了 Ruby 和 Jruby
    • 所以现在我不能使用 export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
    • 为什么?发生了什么事?
    猜你喜欢
    • 2017-11-12
    • 2016-09-22
    • 2014-07-24
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多