2013-03-31 30 views
0

我遵循github上的所有步驟以及Ruby on rails安裝的官方文檔。 我已經安裝了sqlite3的gem。 另外,我抄的DLL和DEF文件和SQLite到Ruby/bin中的.exe文件 然後我創建了一個示例應用程序稱爲MYAPP並試圖通過命令來啓動服務器「軌服務器」命令「rails server」上的Ruby on rails錯誤

它給以下錯誤:

F:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3.rb:6:i 
n `require': cannot load such file -- sqlite3/sqlite3_native (LoadError) 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/s 
qlite3.rb:6:in `rescue in <top (required)>' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7-x86-mingw32/lib/s 
qlite3.rb:2:in `<top (required)>' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:72:in `require' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:72:in `block (2 levels) in require' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:70:in `each' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:70:in `block in require' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:59:in `each' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/runti 
me.rb:59:in `require' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler.rb:13 
2:in `require' 
     from F:/myapp/config/application.rb:7:in `<top (required)>' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-3.2.13/lib/rails/comma 
nds.rb:24:in `require' 
     from F:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-3.2.13/lib/rails/comma 
nds.rb:24:in `<top (required)>' 
     from script/rails:6:in `require' 
     from script/rails:6:in `<main>' 

這是 「捆綁列表」 的輸出指令:

F:\myapp>bundle list 
Gems included by the bund 
    * actionmailer (3.2.13) 
    * actionpack (3.2.13) 
    * activemodel (3.2.13) 
    * activerecord (3.2.13) 
    * activeresource (3.2.1 
    * activesupport (3.2.13 
    * arel (3.0.2) 
    * builder (3.0.4) 
    * bundler (1.3.4) 
    * coffee-rails (3.2.2) 
    * coffee-script (2.2.0) 
    * coffee-script-source 
    * erubis (2.7.0) 
    * execjs (1.4.0) 
    * hike (1.2.1) 
    * i18n (0.6.1) 
    * journey (1.0.4) 
    * jquery-rails (2.2.1) 
    * json (1.7.7) 
    * mail (2.5.3) 
    * mime-types (1.22) 
    * multi_json (1.7.2) 
    * polyglot (0.3.3) 
    * rack (1.4.5) 
    * rack-cache (1.2) 
    * rack-ssl (1.3.3) 
    * rack-test (0.6.2) 
    * rails (3.2.13) 
    * railties (3.2.13) 
    * rake (10.0.4) 
    * rdoc (3.12.2) 
    * sass (3.2.7) 
    * sass-rails (3.2.6) 
    * sprockets (2.2.2) 
    * sqlite3 (1.3.7) 
    * thor (0.18.1) 
    * tilt (1.3.6) 
    * treetop (1.4.12) 
    * tzinfo (0.3.37) 
    * uglifier (1.3.0) 

請HEL p我..我非常渴望在RoR中創建webapps,但我堅持這些錯誤。 在此先感謝。

+0

你將不得不從[這裏](HTTP下載DLL:// WWW。 sqlite.org/download.html),然後將它添加到你的'F:/ Ruby200/bin'文件夾中。同樣的問題[這裏](http://stackoverflow.com/questions/7604049/no-such-file-to-load-sqlite3-sqlite3-native),[這裏](http://stackoverflow.com/questions/5745322/require-no-such-file-to-load-sqlite3-sqlite3-native-loaderror)and [here](http://stackoverflow.com/questions/5800920/error-no-such-file-to-load- sqlite3的-sqlite3的母語 - loaderror)。 –

+0

我上面已經寫過,我已經提取了可執行文件和dll到Ruby/bin文件夾......仍然沒有工作......在我無法理解的bundler.rb和config.rb中存在問題。參考上面的cmd輸出。我不認爲它只涉及sqlite3 – Andre

回答

0

下載所需的可執行文件,並從http://www.sqlite.org/download.html解壓到你的Ruby的bin中的DLL(F:\ Ruby200 \ BIN)


如果您檢查sqlite3的源代碼:

# support multiple ruby version (fat binaries under windows) 
begin 
    RUBY_VERSION =~ /(\d+\.\d+)/ 
    require "sqlite3/#{$1}/sqlite3_native" 
rescue LoadError 
    require 'sqlite3/sqlite3_native' 
end 

您應用程序中斷需要'sqlite3/sqlite3_native',您可以執行irb並嘗試加載該文件,並且它應該失敗,修復該問題,並且您的應用程序應該運行時沒有任何問題。

確保包含路徑的Ruby on%PATH%的二進制文件,所以當你執行需要「sqlite3的/ sqlite3_native」它實際上有該文件的有效路徑。

你也可以通過添加您的boot.rb文件嘗試:

$LOAD_PATH.unshift('F:/Ruby200/bin') 

因此應用程序,當你需要使用相對路徑的文件的sqlite3/sqlite3_native它實際上可以找到該文件。

一旦你能夠加載該文件,它應該工作或段故障漏洞(其窗口:P)

+0

我已經寫了上面,我已經提取可執行文件和dll到Ruby/bin文件夾...仍然沒有工作......有bundler.rb和config.rb中的問題,我我無法理解。參考上面的cmd輸出。我不認爲它只是與sqlite3 – Andre

+0

相關你是否也更新了%PATH%?我100%肯定它與DLL的問題,檢查錯誤信息,它不能更加清楚:「'需要':無法加載這樣的文件 - sqlite3/sqlite3_native(LoadError)」,你可以檢查源代碼sqlite3以及無法加載的驅動程序。 – rorra

+0

非常感謝..我將LOAD_PATH語句添加到boot.rb文件,但沒有$符號,因爲它給出了相同的sqlite3錯誤。現在只有2個錯誤顯示如下:F:\ myapp>軟件包檢查 Gemfile的依賴性得到滿足 F:\ myapp> rails server F:/myapp/config/boot.rb:1:in <' – Andre