質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

railsインストールのsqlite3について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,362

hattin

score 17

前提・実現したいこと

railsの環境構築をしようと思っています。

発生している問題・エラーメッセージ

1)sqlite3のダウンロードサイトで、ダウンロードを済ませ、ダウンロードしたファイルを展開し、sqlite3.dllをruby/binに貼り付けたのですが、エラーメッセージが表示されます。
2)1の問題が残っているせいか、cdを使って、myappに移動したのち、rails sを入力すると2の様な、エラーメッセージが表示されます。

  1)sqlite3 -v
'sqlite3' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

2)cannot load such file -- sqlite3/sqlite3_native (LoadError)

該当のソースコード

コマンドプロンプト、ruby on rails

試したこと

ブラウザで http://www.sqlite.org/download.html を開く。
「Precompiled Binaries for Windows」セクションから sqlite-dll で始まる2個のZIPファイルのうちどちらかをダウンロードする(※)。
ZIPファイルを展開(解凍)すると1個のフォルダが現れるので、その中にある sqlite3.dll をコピーする。
Rubyをインストールしたフォルダ(C:¥Ruby21など)の下にある bin フォルダに sqlite3.dll を貼り付ける。
C:\Ruby26-x64\lib\ruby\gems\2.3.0\specificationsにある、sqlite3-1.3.11-x64-mingw32.gemspecの10行目にあるs.require_paths=["lib".freeze]をs.require_paths= ["lib/sqlite3_native"]に変更し、上書き保存。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

再回答します。解決案です。普段 Windows 版の Rails を使わないので、分かっていませんでした。

以下の手順を踏んでください。

  1. SQlite ダウンロードサイトから Source Code (現時点最新は sqlite-amalgamation-3260000.zip) をダウンロードし、適当なディレクトリに展開してください。
  2. s.require_paths= ["lib/sqlite3_native"] の書き換えは必要か不要か分かりませんので、とりあえず元の記述に戻してください。私は何も手を加えないままで成功しています。
  3. いったん sqlite3.gem をアンインストールしてください。gem uninstall sqlite3
  4. 以下のコマンドを実行して sqlite3.gem を再インストールしてください。
prompt> gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/sqlite-amalgamation-3260000 --with-sqlite3-lib=C:/Ruby25-x64/bin


なお --with-sqlite3-include は Sqlite の Source Code を展開したディレクトリを指定してください。また --with-sqlite3-lib は既にダウンロードし適当な場所にコピー済みの sqlite3.dll の所在ディレクトリを指定してください。

Windows 版の Rails ユーザーは、これをやらないといけないと思うのですが、思ったほどこれを示している情報に当たりません。前述どおり私は普段 Windows 版 Rails は使っていませんので、これが正解かどうかは不明です。どこぞにあった情報に基づいて試してみたら成功した、というものに過ぎません。あしからず。Windows ユーザーがどこかにて情報をとりまとめて頂けると、多くの方が助かるのではないかと感じています。(私はその任に当てれなくてすみません。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/22 22:45

    ありがとうございます。解決することができました。

    キャンセル

0

DLL はライブラリですから、コマンドツール類を含みません。
ダウンロードするなら sqlite-tools-win32-x86-3260000.zip です。
sqlite3 コマンドを利用するなら sqlite-tools-win32-x86-3260000.zip のダウンロードが必要です。

正解と思い込んで、回答として上記打ち消し線部分を書き込んでしまいましたので、DLL に関しては不確かながらコメントします。s.require_paths= ["lib/sqlite3_native"] とするのは少々違うような気がします。これですと lib ディレクトリ配下の sqlite3_native.dll を探しにいく、という意味になるのかと思います。

なお回答を別に分けて解決案を示します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/20 00:06

    回答ありがとうございます。s.require_paths= ["lib/sqlite3_native"]の部分はどうすればいいですか?

    キャンセル

  • 2019/01/20 07:31

    どうしたら良いと解釈されますか? それを行動に移して実際に試されましたか? 当方には環境がないため、どストライクの正解は分かりません。想像はつきます。試してみたらいかがでしょうか? ダメなら Google 検索をしまくってみてください。自身で答えを見つけることの方が、はるかに楽しいですよ。

    キャンセル

  • 2019/01/20 09:28

    なお s.require_paths= ["lib/sqlite3_native"] の部分に固執しないでくださいね。Google 検索してみると、同様エラーはたくさん出てきます。ruby, rails, sqlite の各バージョンの未対応の話とか、sqliteソースからビルドするものだとか、環境を保持していない私でも情報だけはたくさん得られます。後は公式サイト・公式ドキュメントを拠り所として、適切に確認し、後は試してみることかと思います。正解を述べられなくて申し訳ありませんが、ご健闘ください。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る