开发者

sqlite3 gem fails to install

I'm trying to install the "sqlite3-ruby" gem (or the "sqlite3" gem) on OS X 10.6. I'm using ruby-1.9.2 and I currently get the following:

 $ sqlite3 --version
3.7.4
 $ sudo gem install sqlite3
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
checking for sqlite3.h... *** 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=/Users/folken/.rvm/rubies/ruby-1.9.2-head/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}/lib
/Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:28:in `<main>'


Gem files will remain installed in /Users/folken/.rvm/gems/ruby-1.9.2-head/gems/sqlite3-1.3.3 for inspection.

The following is the results of which & whereis, and the sqlite3.h is located in /opt/local/include:

 $ which sqlite3
/opt/local/bin/sqlite3
 $ whereis sqlite3
/usr/bin/sqlite3

I've tried passing in the following as well:

sudo gem install sqlite3 -- --with-sqlite3-开发者_如何学编程include /opt/local/include --with-sqlite3-lib /opt/local/lib
sudo gem install sqlite3 -- --with-sqlite3-dir /opt/local/bin

which results in the following:

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

/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb --with-sqlite3-dir /usr/bin/sqlite3
*** 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=/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby
    --with-sqlite3-dir
/Users/folken/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/mkmf.rb:1336:in `dir_config': undefined method `split' for true:TrueClass (NoMethodError)
    from extconf.rb:9:in `<main>'

Also under /Users/folken/.rvm/gems/ruby-1.9.2-head/gems: sqlite-ruby-2.2.3 sqlite3-1.3.3

Under RVM I have ruby-1.8.7 and the sqlite3 gem loads fine on that, but after much googling I have not found a solution that works for me. Any help is greatly appreciated (even if it involves manual installation / hackery to get working).


I had an almost similar problem as you where I had sqlite3 installed and yet the sqlite3 gem would not install. I was seeing an error message as follows,

user-name-rajas-macbook-pro:rails3 user-namer$ gem install sqlite3
Building native extensions.  This could take a while...
    ERROR:  Error installing sqlite3:
    ERROR: Failed to build gem native extension.

        /Users/user-namer/.rvm/rubies/ruby-1.9.2-p180/bin/ruby 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
    --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=/Users/user-namer/.rvm/rubies/ruby-1.9.2-p180/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}/lib
    --with-sqlite3lib
    --without-sqlite3lib


Gem files will remain installed in /Users/user-namer/.rvm/gems/ruby-1.9.2-    p180@rails_3/gems/sqlite3-1.3.3 for inspection.
Results logged to /Users/user-namer/.rvm/gems/ruby-1.9.2-p180@rails_3/gems/sqlite3-    1.3.3/ext/sqlite3/gem_make.out

Here is what worked for me

gem install sqlite3 -- --with-sqlite3-dir=/opt/local


I was following the Rails3 in Action book with rvm using ruby 1.9.2.p180 and rails 3.1.0.rc6 using Mac OS X 10.5.8 (Leopard) and when I ran:

rake cucumber:ok

I got:

Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4, runtime), already activated sqlite3-1.3.3. Make sure all dependencies are added to Gemfile.) 

I then did:

gem install sqlite3 -- --with-sqlite3-dir=/opt/local

Followed by:

bundle install

Hopefully, I will find my own answer on the Internet when sqlite 1.3.5 is required.


Sounds like you haven't installed XCode.


For osx, make sure you have Xcode installed and you have accepted the terms. For me, I had not agreed to the terms (for whatever reason, perhaps Xcode was recently installed or updated on my computer).

  1. Open Xcode
  2. If a pop up appears then agree to the terms (if you do not get a pop up then you probably have already accepted the terms).
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜