繁体   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