2011-03-10 54 views
9

我是编程和Ruby on Rails的新手。设置我的开发环境一直是地狱。我现在的问题是安装SQLite的3如何在使用RVM时为Ruby on Rails安装SQlite3

当我做

$ bundle install 

我得到

Fetching source index for http://rubygems.org/ 
Using rake (0.8.7) 
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.1) 
Using rack-mount (0.6.13) 
Using rack-test (0.5.7) 
Using tzinfo (0.3.24) 
Using actionpack (3.0.1) 
Using mime-types (1.16) 
Using polyglot (0.3.1) 
Using treetop (1.4.9) 
Using mail (2.2.15) 
Using actionmailer (3.0.1) 
Using arel (1.0.1) 
Using activerecord (3.0.1) 
Using activeresource (3.0.1) 
Using bundler (1.0.10) 
Using thor (0.14.6) 
Using railties (3.0.1) 
Using rails (3.0.1) 
Installing sqlite3 (1.3.3) with native extensions /home/oo/.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) 

     /home/oo/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb 
checking for sqlite3.h... no 
sqlite3.h 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 
    --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=/home/oo/.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 


Gem files will remain installed in /home/oo/.rvm/gems/[email protected]/gems/sqlite3-1.3.3 for inspection. 
Results logged to /home/oo/.rvm/gems/[email protected]/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out 
    from /home/oo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:511:in `block in build_extensions' 
    from /home/oo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `each' 
    from /home/oo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `build_extensions' 
    from /home/oo/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:159:in `install' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `block in run' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `block in each' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start' 
    from /home/oo/.rvm/gems/[email protected]/gems/bundler-1.0.10/bin/bundle:13:in `<top (required)>' 
    from /home/oo/.rvm/gems/[email protected]/bin/bundle:19:in `load' 
    from /home/oo/.rvm/gems/[email protected]/bin/bundle:19:in `<main>' 

我使用Ubuntu 10.10

+0

的可能重复http://stackoverflow.com/questions/3458602/ sqlite3-ruby-install-error-on-ubuntu – Groovetrain 2011-03-10 18:49:58

回答

7

你缺少共享库安装sqlite3的。

大多数ROR安装说明或教程没有告诉你的一件事情是,在Linux上运行时,您需要共享库,或者如果您的Windows个人DLL缺少或与您尝试运行的版本不兼容。

我看你也在运行RVM。所以你应该试试这个。

sudo apt-get install libsqlite3-dev 
sudo gem install sqlite3-ruby 

如果您仍然有麻烦安装宝石尝试这 - 行中删除须藤,只是创业板安装

gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib 

此外,它不会伤害到更新Ubuntu的所有库。

运行此先运行库sqlite3的面前:

sudo apt-get update 
sudo apt-get upgrade 

这可能需要几分钟运行更新和升级。您也可以从管理 - >系统区域运行。有一个菜单允许您运行所有库更新并检查可能丢失的依赖关系。

您也可以从系统应用程序GUI运行sqlite安装,因为它会检查可能也需要的依赖程序。

请记住,当某些事情没有像Ruby on Rails一样安装时,通常意味着库缺失或需要的版本不正确。

+0

@ianN我成功地做了'sudo apt-get update sudo apt-get upgrade'和'sudo apt-get install libsqlite3-dev'。但是当我做'sudo gem install sqlite3-ruby'时,我得到了响应'sudo:gem:command not found' – OoTheNigerian 2011-03-10 19:39:14

+0

@OoTheNigerian - 对不起队友,忘了你正在运行RVM。我已经为你更新了我的答案 – IanN 2011-03-10 19:48:02

+0

@IanN。我无法注意到你所做的改变。对不起,因为麻烦。 – OoTheNigerian 2011-03-10 19:51:54