So I was trying to run bundle install
in my newly created Rails app when I got this error:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20150114-6877-1x6zk4k.rb extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... no
sqlite3 is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/
--with-sqlite3lib
--without-sqlite3lib
extconf failed, exit code 1
Gem files will remain installed in /var/folders/mc/qsk02mn50x96msk9zjxgzbmh0000gn/T/bundler20150114-6877-jsv17e/sqlite3-1.3.10/gems/sqlite3-1.3.10 for inspection.
Results logged to /var/folders/mc/qsk02mn50x96msk9zjxgzbmh0000gn/T/bundler20150114-6877-jsv17e/sqlite3-1.3.10/extensions/universal-darwin-14/2.0.0/sqlite3-1.3.10/gem_make.out
An error occurred while installing sqlite3 (1.3.10), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.10'` succeeds before bundling.
My current sqlite3 version:
3.8.7.4 2014-12-09 01:34:36 f66f7a17b78ba617acde90fc810107f34f1a1f2e
Ruby:
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
Brew:
0.9.5
Further info:
$ which sqlite3
/usr/local/bin/sqlite3
$ whereis sqlite3
/usr/bin/sqlite3
Does this have anything to do with the clashing of Ruby 2.0 and the default Ruby 1.8 that came with my OS X? I'm using OS X 10.10.
How can I solve this problem? Thank you very much!
So I found the solution: Simply (manually) uninstall any existing versions of sqlite3 in your computer. What I did was:
which -a sqlite3
to find out the directories in which sqlite3 was installed (for me there were 4 versions O.o). Delete all those sqlite3 files (by rm)/usr/local/lib
, usr/local/bin
and usr/local/include
After all the deletion, run bundle install
again in your app dir, and the required version of sqlite3 will automatically be installed.
$bundle install
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
// Using a bunch of gems
Installing sqlite3 1.3.10
Installing turbolinks 2.5.3
Installing uglifier 2.7.0
Installing web-console 2.0.0
Your bundle is complete!
Use 'bundle show [gemname]' to see where a bundled gem is installed.
I hope this saves some of your time, if you encountered the same problem as I did. Thanks!