Help us understand the problem. What is going on with this article?

「rails s」で「sqlite3/sqlite3_native」が出た時の対処法

開発環境

windows10
ruby 2.5
rails 6.0

エラー内容

rails new の後、サーバを立ち上げたらエラー発生。

$ rails new hello_app
$ bundle install
$ rails s

>>`require': cannot load such file -- sqlite3/sqlite3_native (LoadError)

解決策

・sqlite3.dllをPathがとおったディレクトリに配置
・sqlite3_native.soファイルを生成
・sqlite3_native.soファイルを配置

対処

2019-09-22 (2)_LI.jpg
2019-09-22 (3)_LI.jpg

それぞれ解凍します。

sqlite3.hが格納されているファイルをCドライブの直下に置きます。
sqlite3.dllをコピーして、Rubyのbinディレクトリ配下に配置します。
自分の場合は、C:\Ruby25-x64\bin でした。
そして以下のコマンドを実行します。

$ gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:\sqlite-amalgamation-3290000\sqlite-amalgamation-3290000 --with-sqlite3-lib=C:/Ruby25-x64/bin


>>Temporarily enhancing PATH for MSYS/MINGW...
  Installing required msys2 packages: mingw-w64-x86_64-sqlite3
・・(省略)
This could take a while...
  Successfully installed sqlite3-1.4.1
  Parsing documentation for sqlite3-1.4.1
  Installing ri documentation for sqlite3-1.4.1
  Done installing documentation for sqlite3 after 1 seconds
  1 gem installed

この際、--with-sqlite3-includeにはsqlite3.hを格納した絶対パスを指定し、--with-sqlite3-libにはsqlite3.dllを格納した絶対パスを指定します。
そしたら、sqlite3がインストールされると思います。
さらにこの時に、C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13\lib\sqlite3\sqlite3_native.soが生成されます。

2019-09-22 (4).png
sqlite3_native.soをコピーして、C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3を開いてください。
2.4まであると思うので2.5を作り先ほどのsqlite3_native.soを置いてください。
2019-09-22 (5).png
これで、rails sで上手くいくと思います。

参考

【Railsアプリ構築】rails new コマンド実行時、SQLite3のビルドに失敗する
Windows10で「rails server」コマンドを実行したときに「cannot load such file -- sqlite3/sqlite3_native」とエラーが出ることへの対処
間違いがありましたら、編集リクエストをお願い致します。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away