rails sでサーバーが起動しない、そんなときの解決方法 sqlite3/sqlite3_native (LoadError)
Author:
費用:0円 時間:10分
さて以前、Ruby on Railsの解説を行ったわけですが、その続きのRailsのサーバーを起動しようとしたときのことです。
コマンドプロンプトにて、railsを生成してサーバーを起動しようと以下のコードを打ちました。
rails s
しかし、サーバーは起動されず、エラーが表示されました…。
テキストにするとこんな感じです。
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11-x64-mingw32/lib/sqlite3.rb:7:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError) from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11-x64-mingw32/lib/sqlite3.rb:7:in `rescue in <top (required)>' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11-x64-mingw32/lib/sqlite3.rb:2:in `<top (required)>' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:91:in `require' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:91:in `block (2 levels) in require' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `each' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `block in require' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `each' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `require' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler.rb:106:in `require' from C:/data/railbook/config/application.rb:7:in `<top (required)>' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:88:in `require' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:88:in `block in server' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `tap' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `server' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>'
これはこまりました。
しかし解決策が見つかったので解説いたします。
sponsored link
解決策
C:\Ruby23-x64\lib\ruby\gems\2.3.0\specificationsにある、sqlite3-1.3.11-x64-mingw32.gemspecを開きましょう。
開くプログラムはテキストエディタならなんでもおkです。俺の場合はatomを使いましたが、メモ帳でも大丈夫だと思います。
そして、おそらく10行目に存在するだろう、
s.require_paths=["lib"]を編集していきます。
libをlib/sqlite3_nativeに書き換えます。
つまり、
s.require_paths= ["lib/sqlite3_native"]
とするわけです。
これで上書き保存すればおkです。
もう一度、
rails s
と入力すると無事サーバーが起動するはずです!
これで3000ポートの閲覧が可能になります!
さあ、引き続き頑張っていきましょう!
参考・引用:http://stackoverflow.com/questions/17643897/cannot-load-such-file-sqlite3-sqlite3-native-loaderror-on-ruby-on-rails