如果我称之为:为什么sqlite 1.2.3 gem正确安装用于MRI而不是JRuby?
gem install sqlite3-ruby --v 1.2.3
它适用于MRI
,但如果我叫:
jruby -S gem install sqlite3-ruby --v 1.2.3
它说,它正试图建立一个原生扩展(适用于Windows)和失败。
为什么JRuby和MRI在处理宝石方面有所不同?
如果我称之为:为什么sqlite 1.2.3 gem正确安装用于MRI而不是JRuby?
gem install sqlite3-ruby --v 1.2.3
它适用于MRI
,但如果我叫:
jruby -S gem install sqlite3-ruby --v 1.2.3
它说,它正试图建立一个原生扩展(适用于Windows)和失败。
为什么JRuby和MRI在处理宝石方面有所不同?
因为构建本机扩展的任何东西都是用C语言编译的东西,我相信JRuby与这些具有用C语言编写的部分的东西不兼容,尽管我并没有跨越技术原因。
JRuby宝石,C代码必须使用FFI。 FFI是一个非常新鲜的事物,大多数使用C的ruby宝石都没有使用它(实际上我没有意识到这一点)。
http://blog.headius.com/2008/10/ffi-for-ruby-now-available.html
无论如何,你不需要这个了SQLite3的下JRuby的 - 使用这个:
jruby -S gem install jdbc-sqlite3
,或者如果运行的轨道:
jruby -S gem install activerecord-jdbcsqlite3-adapter
还记得改变的database.yml条目使用jdbc适配器: 开发: 适配器:jdbcsqlite3 dat基础:db/jdbc-development.sqlite3 池:5 超时:5000 – kfitzpatrick 2009-07-06 17:28:54