Notes on MacRuby and sqlite3
Each time I install the latest version of MacRuby, I spend an hour re-figuring this out, so here it is…
Under certain conditions installing the ‘sqlite3-ruby’ gem on OSX with macgem fails with this error:
Building native extensions.
This could take a while...
/bin/sh: line 1: 27196 Abort trap
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/bin/macruby extconf.rb
ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension.
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/bin/macruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... no
sqlite3 is missing.
Try 'port install sqlite3 +universal'or 'yum install sqlite3-devel' 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
... etc ....
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/
gems/sqlite3-ruby-1.3.2/ext/sqlite3/extconf.rb:20:
in `asplode:': sqlite3 is missing. Try 'port install sqlite3 +universal'or 'yum
install sqlite3-devel' and check your shared library search path (the location
where your sqlite3 shared library is located). (SystemExit) from
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/
gems/sqlite3-ruby-1.3.2/ext/sqlite3/extconf.rb:29:
in `<main>'\
The problem is that macports installs into /opt/local by default so even after doing ‘port install sqlite3 +universal’, you’ll get this error message. You need to specify the install prefix using this awkward command line:
sudo macgem install --version '= 1.3.2' sqlite3-ruby -- --with-sqlite3-dir=/opt/local
Version 1.3.2 is the one I’ve had luck with on MacRuby up to version 0.11.
Advertisement
leave a comment