如果我稱之爲:爲什麼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