Donnerstag, 16. August 2012

Versuch: JRuby auf dem Raspberry Pi

Neulich ist mein Raspberry Pi eingetroffen, und ich habe natürlich probiert, dort JRuby zum Laufen zu bekommen. Leider ist mir das nicht gelungen...

Meine Umgebung:

Da ich Hardware-nahe Sachen ausprobieren will, habe ich auf einer 4GB-SD-Karte  Adafruits Occidentalis 0.1-Distribution installiert.
Anschließend war ein Kernel-Update fällig (Interrupts!) und zwar mit Chris Boots Raspberry Pi 3.2.23 Kernel. Das geht nur mit Gewalt (--force-architecture), aber der Raspi läuft:

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.2.23-rpi1+ #3 Sun Jul 15 16:46:51 BST 2012 armv6l GNU/Linux

Anschließend Java 7 installiert:

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install openjdk-7-jdk
pi@raspberrypi ~ $ java -version
java version "1.7.0_03"

Prima bis jetzt, aber dann wird es duster:

Mit JRuby 1.7preview2



pi@raspberrypi ~ $ ./jruby-1.7.0.preview2/bin/jruby -S gem install rails
java.lang.ExceptionInInitializerError
    at com.kenai.jffi.Foreign.getInstance(Foreign.java:95)
.
.
Caused by: java.lang.UnsatisfiedLinkError: could not locate stub library in jar file.  Tried [jni/arm-Linux/libjffi-1.2.so, /jni/arm-Linux/libjffi-1.2.so]
    at com.kenai.jffi.internal.StubLoader.getStubLibraryStream(StubLoader.java:345)
    at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:292)
    at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:235)
    at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:395)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.kenai.jffi.Init.load(Init.java:68)
    ... 33 more
ArgumentError: cannot import class `org.jruby.RubyProcess' as `RubyProcess'
     java_import at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/java/core_ext/object.rb:63
             map at org/jruby/RubyArray.java:2355
     java_import at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/java/core_ext/object.rb:22
  ProcessManager at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/kernel/jruby/process_manager.rb:7
           JRuby at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/kernel/jruby/process_manager.rb:6
          (root) at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/kernel/jruby/process_manager.rb:3
            load at org/jruby/RubyKernel.java:1050
          (root) at file:/home/pi/jruby-1.7.0.preview2/lib/jruby.jar!/jruby/kernel.rb:1


nicht schön.

Nächster Versuch Java 7 mit JRuby 1.6.7.2

pi@raspberrypi ~ $ jruby -v
jruby 1.6.7.2 (ruby-1.8.7-p357) (2012-05-01 26e08ba) (OpenJDK Zero VM 1.7.0_03) [linux-arm-java]

aber ein Fehler bei der Rails-Installation

pi@raspberrypi ~ $ ./jruby-1.6.7.2/bin/jruby -S gem install rails
ArgumentError: Illformed requirement [">= 0"]

Nächster Versuch: Java 6 mit JRuby 1.7preview2. 


Hier hängt sich der Raspi bei "jruby -version" komplett auf, er ist gar nicht mehr übers Netz erreichbar, im Log sehe ich leider nichts.

Nächster Versuch: Java 6 mit JRuby 1.6.7.2


Hier meldet sich Java und JRuby korrekt:
pi@raspberrypi ~ $ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (6b24-1.11.3-2+rpi1)
OpenJDK Zero VM (build 20.0-b12, mixed mode)

pi@raspberrypi ~ $ jruby -v
jruby 1.7.0.preview2 (1.9.3p203) 2012-08-07 4a6bb0a on OpenJDK Zero VM 1.6.0_24-b24 [linux-arm]

aber eine Rails-Installation funktioniert nicht:

pi@raspberrypi ~ $ ./jruby-1.6.7.2/bin/jruby -S gem install rails
ArgumentError: Illformed requirement [">= 0"]
          parse at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/requirement.rb:81
     initialize at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/requirement.rb:106
           map! at org/jruby/RubyArray.java:2371
     initialize at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/requirement.rb:106
        default at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/requirement.rb:62
  Specification at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/specification.rb:83
         (root) at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/specification.rb:29
         (root) at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/specification.rb:51
        require at org/jruby/RubyKernel.java:1033
         (root) at /home/pi/./jruby-1.6.7.2/lib/ruby/site_ruby/1.8/rubygems/defaults/jruby.rb:1273
        require at org/jruby/RubyKernel.java:1033
         (root) at /home/pi/./jruby-1.6.7.2/bin/gem:8


Hat jemand JRuby auf dem Raspberry Pi zum laufen bekommen, bzw eine Idee, was hier schiefläuft?


Keine Kommentare:

Kommentar posten