2014-01-10 2 views
0

У меня есть приложение Rails, которое было создано на Ubuntu. Я хотел, чтобы запустить его на Mac, но после установки связки и работает rails s, я получаю следующие ошибки:Rails приложение с JRuby не работает

LoadError: load error: sqlite3/sqlite3_native -- java.lang.UnsatisfiedLinkError: failed to load shim library, error: dlopen(/Users/home/.rvm/rubies/jruby-1.7.4/lib/native/Darwin/libjruby-cext.dylib, 10): image not found require at org/jruby/RubyKernel.java:1054
(root) at /Users/home/.rvm/gems/jruby-1.7.4/gems/sqlite3-1.3.8/lib/sqlite3.rb:6 require at org/jruby/RubyKernel.java:1054 (root) at /Users/home/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:1 each at org/jruby/RubyArray.java:1617 require at /Users/home/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:72 each at org/jruby/RubyArray.java:1617 require at /Users/home/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:70 require at /Users/home/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler/runtime.rb:59 require at /Users/home/.rvm/gems/[email protected]/gems/bundler-1.3.5/lib/bundler.rb:132 require at org/jruby/RubyKernel.java:1054 (root) at /Users/home/workSpace/RubyOnRails/sample_app/config/application.rb:13 tap at org/jruby/RubyKernel.java:1860 (root) at /Users/home/.rvm/gems/jruby-1.7.4/gems/railties-3.2.8/lib/rails/commands.rb:1 require at org/jruby/RubyKernel.java:1054 (root) at script/rails:6

Мой Gemfile:

source ' https://rubygems.org '

gem 'rails', '3.2.8'

gem 'sqlite3'

group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1'

gem 'uglifier', '>= 1.0.3' end

gem 'jquery-rails'

gem 'execjs'

group :test, :development do gem "rspec-rails", "~> 2.0" end

gem 'spork'

gem 'webrat'

gem '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

+0

Вы использовали JRuby на Ubuntu? – Shepmaster

+0

Нет, я не использовал его! – aakpro

ответ

1

Проблема связана с тем, что вы пытаетесь использовать драгоценный камень Ruby, который полагается на расширение C. Из JRuby wiki:

JRuby versions prior to 1.6 did not support Ruby C extensions, and even in 1.6 the support is still "in development" and considered experimental. As of 1.7, it has been disabled and will likely be removed.

В частности, сообщение об ошибке говорится: dlopen(/Users/home/.rvm/rubies/jruby-1.7.4/lib/native/Darwin/libjruby-cext.dylib, 10): image not found. Это попытка загрузить оболочку расширения JRuby C, которая не найдена. Я не уверен в конкретной причине здесь, но, возможно, он не установился.

Как я понимаю, у вас есть два основных варианта:

  1. Install регулярные МРТ вместо JRuby, как вы были на Ubuntu. Затем вы можете использовать драгоценные камни с расширениями C по вашему желанию.
  2. От same wiki: используйте activerecord-jdbc-adapter вместо этого вместе с jdbc-sqlite3. Это позволит вам использовать JRuby, если вам это нужно для вашего приложения.
0

JRuby 1.7.x больше не поддерживает расширения ruby ​​C. См. Это Jira ticket

Смежные вопросы