如何在使用RVM时为Ruby on Rails安装SQlite3

我是编程和Ruby on Rails的新手。 设置我的开发环境一直很糟糕。 我目前的问题是安装Sqlite 3。

当我做

$ 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/ruby-1.9.2-p180@rails3tutorial/gems/sqlite3-1.3.3 for inspection. Results logged to /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/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/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `block in run' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `block in each' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/bundler-1.0.10/bin/bundle:13:in `' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/bin/bundle:19:in `load' from /home/oo/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/bin/bundle:19:in `' 

我正在使用Ubuntu 10.10

您缺少安装sqlite3的共享库。

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

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

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

如果您仍然无法安装gem,请尝试此操作 – 将sudo放入行中并仅安装gem

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

另外,为Ubuntu更新所有库也没什么坏处。

在运行sqlite3的库之前先运行它:

 sudo apt-get update sudo apt-get upgrade 

运行更新和升级可能需要几分钟时间。 您也可以从管理员 – >系统区域运行此命令。 有一个菜单允许您运行所有库更新并检查可能缺少的依赖项。

您还可以从系统应用程序GUI运行sqlite install,因为它将检查可能还需要的依赖项目。

只要记住当某些东西没有像你在Ruby on Rails上遇到的问题那样安装时,它通常意味着缺少库或者需要不正确的版本。

以下是HEROKU的更好答案- 无法运行git push heroku master

由于您无法在heroku上使用sqlite3,请将其添加到您的Gemfile中:

 group :production do gem 'pg' end group :development, :test do gem 'sqlite3' end