在 windows 上使用 rails gemfile 安裝 sqlite3 1.4.0失敗時的解決方法
解決方法是,不要安裝 sqlite3 1.4.0,改成安裝 sqlite3 1.3.13 就好。
指定安裝 Sqlite3 1.3.13 的方法
在 rails 專案資料夾下找到 Gemfile,找到一行:
gem 'sqlite3'
將它改為:
gem 'sqlite3', '1.3.13'
然後存檔,回到命令提示字元,在專案資料夾下輸入以下指令:
bundle install
就完成了。
安裝 sqlite3 1.4.0 時,會遇到的錯誤訊息
Installing sqlite3 1.4.0 (was 1.3.13) with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.current directory:
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/Ruby24-x64/bin/ruby.exe -r ./siteconf20190208-15456-1a9jivq.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** 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:/Ruby24-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
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/libTo see why this extension failed to compile, please check the mkmf.log which can
be found here:C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/sqlite3-1.4.0/mkmf.logextconf failed, exit code 1Gem files will remain installed in
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.4.0 for inspection.
Results logged to
C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/sqlite3-1.4.0/gem_make.outAn error occurred while installing sqlite3 (1.4.0), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.4.0'` succeeds before bundling.In Gemfile:
sqlite3