簡體   English   中英

使用JRuby的Rails應用無法正常工作

[英]Rails app with JRuby not working

我有一個在Ubuntu上創建的Rails應用程序。 我想在Mac上運行它,但是在安裝捆綁包並運行rails s ,出現以下錯誤:

LoadError:加載錯誤:sqlite3 / sqlite3_native-java.lang.UnsatisfiedLinkError:加載Shim庫失敗,錯誤:dlopen(/Users/home/.rvm/rubies/jruby-1.7.4/lib/native/Darwin/libjruby- cext.dylib,10):在org / jruby / RubyKernel.java:1054上找不到圖像
(root)位於/Users/home/.rvm/gems/jruby-1.7.4/gems/sqlite3-1.3.8/lib/sqlite3.rb:6要求位於org / jruby / RubyKernel.java:1054(root) /Users/home/.rvm/gems/jruby-1.7.4@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:1分別在org / jruby / RubyArray.java:1617在/ Users需要/home/.rvm/gems/jruby-1.7.4@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72在org / jruby / RubyArray.java:1617每個都在/ Users / home /.rvm/gems/jruby-1.7.4@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70要求/Users/home/.rvm/gems/jruby-1.7.4@global /gems/bundler-1.3.5/lib/bundler/runtime.rb:59在/Users/home/.rvm/gems/jruby-1.7.4@global/gems/bundler-1.3.5/lib/bundler中需要。 rb:132在org / jruby / RubyKernel.java:1054(root)在/Users/home/workSpace/RubyOnRails/sample_app/config/application.rb:13在org / jruby / RubyKernel.java:1860(root)在/Users/home/.rvm/gems/jruby-1.7.4/gems/railties-3.2.8/lib/rails/commands.rb:1處需要org / jruby / RubyKernel.java:1054(root)在腳本處/軌道:6

我的Gemfile

來源' https://rubygems.org '

gem'rails','3.2.8'

gem'sqlite3'

組:資產做寶石'sass-rails','〜> 3.2.3'寶石'coffee-rails','〜> 3.2.1'

gem'uglifier','> = 1.0.3'結尾

寶石'jquery-rails'

寶石'execjs'

組:test,:development做gem“ rspec-rails”,“〜> 2.0”結束

寶石'spork'

寶石'webrat'

寶石“ heroku”

jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_15-b03 [darwin-x86_64]Rails 3.2.8 jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_15-b03 [darwin-x86_64]使用jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_15-b03 [darwin-x86_64]

問題源於您試圖使用依賴於C擴展名的Ruby gem的事實。 JRuby Wiki

1.6之前的JRuby版本不支持Ruby C擴展,甚至在1.6中,該支持仍在“開發中”並被認為是試驗性的。 從1.7開始,它已被禁用並且可能會被刪除。

具體來說,錯誤消息指出: dlopen(/Users/home/.rvm/rubies/jruby-1.7.4/lib/native/Darwin/libjruby-cext.dylib, 10): image not found 這是試圖加載未找到的JRuby C擴展包裝器。 我不確定這里的確切原因,但也許沒有安裝。

如我所見,您有兩個主要選擇:

  1. 與在Ubuntu上一樣,安裝常規的MRI而不是JRuby。 然后,您可以根據需要使用具有C擴展名的gems。
  2. 同一個Wiki :改為使用activerecord-jdbc-adapter和jdbc-sqlite3。 如果您的應用程序需要它,這將允許您使用JRuby。

JRuby 1.7.x不再支持ruby C擴展。 看到這張吉拉

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM