为什么sqlite 1.2.3 gem正确安装用于MRI但不适用于JRuby?

时间:2009-04-25 03:39:15

标签: windows ruby installation rubygems jruby

如果我打电话:

gem install sqlite3-ruby --v 1.2.3

适用于MRI

但如果我打电话:

jruby -S gem install sqlite3-ruby --v 1.2.3

它说它正在尝试构建一个原生扩展(对于Windows)并失败。

为什么JRuby和MRI在处理宝石方面有所不同?

2 个答案:

答案 0 :(得分:6)

JRuby认为C代码必须使用FFI。 FFI是一个非常新的东西,使用C的大多数红宝石都没有使用它(实际上我并不知道这样做)。

http://blog.headius.com/2008/10/ffi-for-ruby-now-available.html

无论如何,你不需要在jruby下使用SQLite3 - 使用它:

jruby -S gem install jdbc-sqlite3

或运行rails:

jruby -S gem install activerecord-jdbcsqlite3-adapter

答案 1 :(得分:5)

因为构建本机扩展的任何东西都是用C编译的东西,我相信JRuby与这些用C语言编写的部分不兼容,尽管我没有达到技术原因。