错误:安装时无法构建gem本机扩展安装sqlite3(1.3.3)

时间:2011-06-25 02:53:26

标签: ruby-on-rails-3 sqlite3-ruby

我正在尝试启动我的第一个rails项目。我在Mac OS X 10.6.7上安装了Xcode4,ruby 1.9.2,rails 3.0.1

当我输入bundle install时,我收到此错误:

~/rails_project/first_app$ bundle install
Fetching source index for http://rubygems.org/
Using rake (0.9.2)
Using abstract (1.0.0)
Using activesupport (3.0.1)
Using builder (2.1.2)
Using i18n (0.4.2)
Using activemodel (3.0.1)
Using erubis (2.6.6)
Using rack (1.2.3)
Using rack-mount (0.6.14)
Using rack-test (0.5.7)
Using tzinfo (0.3.28)
Using actionpack (3.0.1)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.9)
Using mail (2.2.19)
Using actionmailer (3.0.1)
Using arel (1.0.1)
Using activerecord (3.0.1)
Using activeresource (3.0.1)
Using bundler (1.0.14)
Using thor (0.14.6)
Using railties (3.0.1)
Using rails (3.0.1)
Installing sqlite3 (1.3.3) with native extensions /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:533:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

       /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/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/tiffany/.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
/Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/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/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:254:in `open'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
       from extconf.rb:28:in `<main>'


Gem files will remain installed in /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/sqlite3-1.3.3 for inspection.
Results logged to /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:511:in `block in build_extensions'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `each'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `build_extensions'
       from /Users/tiffany/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:159:in `install'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/source.rb:101:in `block in install'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/source.rb:91:in `install'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/installer.rb:58:in `block (2 levels) in run'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/installer.rb:57:in `block in run'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/spec_set.rb:12:in `block in each'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/spec_set.rb:12:in `each'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/spec_set.rb:12:in `each'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/installer.rb:49:in `run'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/installer.rb:8:in `install'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/cli.rb:222:in `install'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/vendor/thor/task.rb:22:in `run'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/vendor/thor.rb:246:in `dispatch'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/lib/bundler/vendor/thor/base.rb:389:in `start'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.14/bin/bundle:13:in `<top (required)>'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/bin/bundle:19:in `load'
       from /Users/tiffany/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/bin/bundle:19:in `<main>'
~/rails_project/first_app$

我在网上发现此错误的所有信息都是针对Windows或Linux机器的。在我的一个谷歌搜索中,我看到某个地方可能是链接问题,验证开发工具的尝试失败了。有人可以帮忙解决这个问题吗?我也尝试过安装gem install sqlite3-ruby - --with-sqlite3-dir = / usr / local / lib,但这也无效。救命!谢谢!

1 个答案:

答案 0 :(得分:1)

你需要安装sqlite3,gem需要链接的sqlite头文件。见this post.

您可以使用macports安装它:sudo port install sqlite3

或者,如果您正在使用brew尝试brew install sqlite