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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

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

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

Q&A

解決済

1回答

14464閲覧

windowsのgemのsqlite3インストールでエラーが出る

gobou0912

総合スコア11

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQLite

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

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

0グッド

0クリップ

投稿2019/02/27 12:39

Ruby on Railsを始めようと思って以下のサイトを参考に導入作業をしていました
https://www.javadrive.jp/rails/install/
railsのインストールは正常にできたのですが、gemでsqlite3をインストールしようとすると以下のようなエラーが出ます
このエラーの原因は何か教えてください
OSはWindows10 Home 64bitです

cmd

1C:\>gem install sqlite3 2Temporarily enhancing PATH for MSYS/MINGW... 3Installing required msys2 packages: mingw-w64-x86_64-sqlite3 4警告: mingw-w64-x86_64-sqlite3-3.27.0-1 は最新です -- スキップ 5Building native extensions. This could take a while... 6ERROR: Error installing sqlite3: 7 ERROR: Failed to build gem native extension. 8 9 current directory: C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.0/ext/sqlite3 10C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20190227-12196-19643xi.rb extconf.rb 11checking for sqlite3.h... yes 12checking for pthread_create() in -lpthread... yes 13checking for -ldl... no 14checking for dlopen()... no 15missing function dlopen 16*** extconf.rb failed *** 17Could not create Makefile due to some reason, probably lack of necessary 18libraries and/or headers. Check the mkmf.log file for more details. You may 19need configuration options. 20 21Provided configuration options: 22 --with-opt-dir 23 --without-opt-dir 24 --with-opt-include 25 --without-opt-include=${opt-dir}/include 26 --with-opt-lib 27 --without-opt-lib=${opt-dir}/lib 28 --with-make-prog 29 --without-make-prog 30 --srcdir=. 31 --curdir 32 --ruby=C:/Ruby26-x64/bin/$(RUBY_BASE_NAME) 33 --with-sqlcipher 34 --without-sqlcipher 35 --with-sqlite3-config 36 --without-sqlite3-config 37 --with-pkg-config 38 --without-pkg-config 39 --with-sqlcipher 40 --without-sqlcipher 41 --with-sqlite3-dir 42 --without-sqlite3-dir 43 --with-sqlite3-include 44 --without-sqlite3-include=${sqlite3-dir}/include 45 --with-sqlite3-lib 46 --without-sqlite3-lib=${sqlite3-dir}/lib 47 --with-pthreadlib 48 --without-pthreadlib 49 --with-dllib 50 --without-dllib 51 52To see why this extension failed to compile, please check the mkmf.log which can be found here: 53 54 C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.0/mkmf.log 55 56extconf failed, exit code 1 57 58Gem files will remain installed in C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.0 for inspection. 59Results logged to C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.0/gem_make.out

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記の回答をしたのですが、これでは駄目です。コメント参照。

==============================================
必要なライブラリが足りていないというエラーです。
簡単には、バージョンを下げるとコンパイル済みのgemがあるので、大丈夫です。
gem install sqlite3 --version 1.3.13

投稿2019/02/27 12:48

編集2019/02/27 13:19
otn

総合スコア84505

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

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

gobou0912

2019/02/27 12:53

できました!ありがとうございました! 「コンパイル済みのgemがある」というのはどういうことですか?
gobou0912

2019/02/27 13:07

SqLite3のversion1.3.13をインストールすることはできましたが rails new practice というようにRailsアプリを作ろうとしてもgemが1.4.0をインストールしようとして(?)エラーがでます これはどのように対処すればよいでしょうか?
otn

2019/02/27 13:18

「コンパイル済みのgemがある」とは、gem内のプログラムのうちCで書かれた物がコンパイル済みであると言う意味です。 ああ、すいません。これでは駄目ですね。 久しくsqlite3を使うプログラムを実行してませんでしたが、require "sqlite3" でエラーになりますね。 gemの中にRubyのバージョンに依存した実行モジュールがあるようです。 1.3.13だと、Ruby2.4までのコンパイル済み実行モジュールがあります。 ・sqlite3 1.4内のCプログラムがコンパイルできるライブラリを自分で揃える ・Ruby2.4を使って、sqlite3 1.3.13を使う の二択です。
gobou0912

2019/02/27 14:06

前者は難しそうなのでRuby2.4.5を入れ直して gem install rails でRails 5.2.2 gem install sqlite3 --version 1.3.13 でSqLite3 1.3.13 をインストールし、再び rails new practice を行っても同じように怒られました(なにかの上書き?的なものを聞かれたときに拒否したからかなあ...)
gobou0912

2019/03/03 11:01 編集

プラットフォームを指定してsqlite3 1.3.13を正しくインストールすればできました!実は諦めてWindows Subsytem for Linuxでもインストールを試みていたのでLinuxでのエラー対策も一応メモ書きしておきます <Linux(Ubuntu)> sudo apt update //インストールできないファイルの対策 sudo apt install ruby //rubyの実行環境 sudo apt install ruby-dev //これがないとgemが正しく動かない sudo apt install libxml2 //nokogiriのgem native extensionエラー対策 sudo apt install libxml2-dev //nokogiriのgem native extensionエラー対策 sudo apt install zlib1g-dev //nokogiriのgem native extensionエラー対策 sudo gem install nokogiri //railsインストール時のnokogiriエラー対策 sudo gem install rails //railsの実行環境 sudo apt install libsqlite3-dev //bundle installのsqliteエラー対策 cd [作業パス] rails new [アプリ名] --skip-bundle cd [アプリ名] 「vim Gemfile」等でGemfileを編集 →最終行に「gem 'therubyracer'」を追加 //サーバーのランタイムエラー対策 →「gem 'sqlite3'」を「gem 'sqlite3', '~> 1.3.6'」に変更 //bundle installのsqliteエラー対策 bundle install rails server ブラウザで「http://localhost:3000/」 →Yay!You're on Rails! <Windows> https://rubyinstaller.org/downloads/からRuby+Devkit 2.5.3-1 (x64)をダウンロード、実行 フォルダは「C:\Ruby25-x64」等のわかりやすいパスにしておく 「Add Ruby executables to your PATH」「Use UTF as default external encoding.」にチェックを入れる(自己流) gemを正しく使うためMSY2もチェックを入れる Rubyのインストールが終わればMSY2のインストールを始める Ruby Installer2の「1」「2」「3」をそれぞれ実行 gem install rails http://www.sqlite.org/download.htmlからsqlite-dll-win64-x64-3270200.zipとsqlite-tools-win32-x86-3270200.zipをDL それぞれの中にあるsqlite3.dllとsqlite3.exeをRubyをインストールしたフォルダのbinディレクトリにコピー gem install sqlite3 --version 1.3.13 --platform=ruby //1.4.0は未対応のため旧バージョンを指定、プラットフォームを指定しないとsqlite_native.soの位置がおかしくなる cd [作業パス] rails new [アプリ名] --skip-bundle cd [アプリ名] 「vim Gemfile」等でGemfileを編集 →「gem 'sqlite3'」を「gem 'sqlite3', '~> 1.3.13」に変更 //bundle installのsqliteエラー対策 bundle install rails server ブラウザで「http://localhost:3000/」 →Yay!You're on Rails! ご迷惑をおかけしました 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問