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

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

新規登録して質問してみよう
ただいま回答率
85.36%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

1回答

1996閲覧

Railsのためにsqlite3をインストールしようとしても「ERROR: Failed to build gem native extension.」というメッセージが出る…

seiji0807

総合スコア12

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2019/02/10 04:18

前提・実現したいこと

Ruby on RailsのためにSqlite3をインストールしたい

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

こちらのRailsの導入を支援するページに従ってインストールを進めていたのですが、

ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension.

というメッセージが出てインストールがうまくいきません。

具体的には、
「C:>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/Sqlite3」とrubyのコマンドプロンプトで入力すると

C:\>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/Sqlite3 Temporarily enhancing PATH for MSYS/MINGW... Installing required msys2 packages: mingw-w64-x86_64-sqlite3 警告: mingw-w64-x86_64-sqlite3-3.23.1-1 は最新です -- スキップ Building native extensions with: '--with-sqlite3-include=C:/Sqlite3' This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension. current directory: C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.0/ext/sqlite3 C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20190210-7600-k9xngo.rb extconf.rb --with-sqlite3-include\=C:/Sqlite3 checking for sqlite3.h... yes checking for pthread_create() in -lpthread... yes checking for -ldl... no checking for dlopen()... no missing function dlopen *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby26-x64/bin/$(RUBY_BASE_NAME) --with-sqlcipher --without-sqlcipher --with-sqlite3-config --without-sqlite3-config --with-pkg-config --without-pkg-config --with-sqlcipher --without-sqlcipher --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib --with-pthreadlib --without-pthreadlib --with-dllib --without-dllib To see why this extension failed to compile, please check the mkmf.log which can be found here: C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.0/mkmf.log extconf failed, exit code 1 Gem files will remain installed in C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.0 for inspection. Results logged to C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.0/gem_make.out

というエラーメッセージが出力されます。
こちらのページを参考にして、「C:/Sqlite3」というディレクトリにsqlite3.hとsqlite3.dllを入れております。

試したこと

もちろん

gem install sqlite3

も最初に試しましたが、やはり上記とほぼ同様のエラーメッセージが出力されました。

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

windows10
Ruby 2.6.1
Rails 5.2.2
で実行しています。

昨日思い立ってRuby on Railsをはじめようと思ったばかりのド素人なので平易な言葉でご教示頂けると幸いでございます…。
よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kabao

2019/02/10 05:57

Rubyは、どこからダウンロードしたものでしょうか? Windowsなら、RubyInstallerですかね? https://rubyinstaller.org/ 2.6.1はかなり新しいので、(特にWindows向けの)ライブラリが追いついていない可能性もあるかもしれません。
seiji0807

2019/02/10 07:11

kabao様 お返事ありがとうございます。 ご明察の通り、RubyInstallerからrubyをダウンロードいたしました。 アドバイスの通り2.6.1だからダメなのかと思い、RubyInstallerからRuby+Devkit 2.5.3-1 (x64)をダウンロード・インストールして同様に 「gem install sqlite3」「gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/Sqlite3」をコマンドプロンプトから打ってみましたが、いずれもダメでした…。
guest

回答1

0

ベストアンサー

これの解決方法でどうでしょうか。
--with-sqlite3-includeと--with-sqlite3-libを指定して、ビルドしなおしているみたいですね。DevKitが必要のようです。

https://qiita.com/yoru722/items/8a633d71148de0f0ae1f

投稿2019/02/10 08:10

kabao

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seiji0807

2019/02/10 09:52

この記事の内容は ・sqlite3.dllをruby.exeと同じディレクトリ(C:\Ruby25-x64\bin)に配置したうえで ・「sqlite-amalgamation-3270100」というタイプのフォルダをCの直下に配置し、 ・「C:\>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:\sqlite-amalgamation-3270100 --with-sqlite3-lib=C:\Ruby25-x64\bin」 とすればできるようになる、と解釈して実際にやってみたのですが、やはり「Failed to build gem native extension.」のエラーが出てしまうようです…
kabao

2019/02/10 11:36

確かに。2.6.1で再現しました。 で、githubの特定のブランチだと動くみたいで、以下でインストールできました。 gem install specific_install gem specific_install -l https://github.com/larskanis/sqlite3-ruby -b add-gemspec ただしgitコマンドをコマンドラインから実行できるように、PATHを設定しておく必要があります。 どうでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問