2017-05-18 2 views
0

Ich versuche ein Input-Plugin für Logstash zu entwickeln.Logstash Plugin Entwicklung

ich dieses Tutorial verwendet habe

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

das Problem, das ich je hatte, als ich versuchte zu installieren "Bündel" mit

"Bundle installieren" - das ist die Fehlermeldung

Ihr ruby-Motor ist Rubin, aber Ihr Gemfile angegeben jruby

- Gemfile:

Quelle 'https://rubygems.org' Rubin '2.2.0': Motor => 'jruby': engine_version => '2.3.1' gemspec

- Rubin -v:

Rubin 2.2.0p0 (2014.12.25 Revision 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 auf 1.8.0_92-b14 + jit [darwin-x86_64]

Was mache ich hier falsch?

+0

Sind Sie mit 'rvm' oder' rbenv' in Ihrem Projekt? –

+0

Ich benutze rbenv – IHEB

+0

Und haben Sie die '.ruby-Version' und' .ruby-gemset' Dateien entsprechend erstellt? Es sieht so aus, als ob Ihr Bundler versucht, den Standard-Ruby des Systems (anstelle von JRuby) zu verwenden. –

Antwort

1

Da Sie rbenv verwenden, sind hier einige gute Schritte zur Fehlerbehebung:

  • Stellen Sie sicher, dass Ihre PATH enthält /path/to/your/home/directory/.rbenv/shims oder eine ähnliche Variante.
  • Sie benötigen auch eval "$(rbenv init -)" in Ihrer Shell .bash|zsh|whateverrc Datei.
  • Wenn dies alles in Ordnung ist, überprüfen Sie die Datei .ruby-version. Wechseln Sie in das Verzeichnis des Projekts, an dem Sie gerade arbeiten, und rufen Sie cat .ruby-version auf.
  • Wenn nicht, erstellen Sie einfach eine neue Datei mit diesem Namen und fügen Sie einen passenden JRuby-Versions-String ein. Eine gute Möglichkeit, die lieferbaren Versionen zu überprüfen ist rbenv install --list, aber die neueste (von meinem lokalen ruby-build) ist jruby-9.1.7.0
  • Jetzt rbenv install aufrufen. Wenn Sie die Datei nicht erstellen möchten/diesen Schritt überspringen möchten, führen Sie einfach rbenv install jruby-9.1.7.0
  • rbenv rehash; bundle sollte jetzt funktionieren.
  • 0

    Sieht so aus, als ob Ihr Bundler versucht, die Standard-Ruby-Version des Systems anstelle der JRuby zu verwenden.

    Ich empfehle Ihnen, alle früheren Installationen von Ruby zu deinstallieren, um Ihr System wieder sauber zu machen.

    Danach sicherstellen, dass Ihre PATH korrekt ist.
    Wenn Sie bash verwenden, Ihre ~/.bashrc oder ~/.bash_profile sollten die folgenden Befehle haben:

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

    Wenn Sie zsh verwenden, müssen diese Befehle in ~/.zshrc befindet.

    Danach geben Sie Ihr Projektverzeichnis und erstellt eine neue Datei .ruby-version:

    echo 'jruby-9.1.7.0' > .ruby-version 
    

    Hinweis: können Sie andere Versionen siehe Verfügung, um den Befehl rbenv install --list.

    Schließlich verlässt das Verzeichnis, geben Sie es noch einmal, und die folgenden Befehle ausführen:

    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 
    
    +0

    JA, das ist das Problem, der Bundler verwendet die Standard-Ruby-Version des Systems – IHEB

    +0

    Ich habe alle vorherigen Installationen deinstalliert und dieses Mal habe ich Ruby & Jruby von der Quelle – IHEB

    +0

    erstellt, so dass ich jetzt nicht exportieren kann PATH = "$ HOME/.rbenv/bin: $ PFAD " eval" $ (rbenv init -) " – IHEB

    Verwandte Themen