I am new to programming and Ruby on Rails. Setting up my dev environment has been hell. My present issue is installing Sqlite 3.
我是编程和Ruby on Rails的新手。设置我的开发环境一直很糟糕。我目前的问题是安装Sqlite 3。
When I do
当我做
$ bundle install
I get
我明白了
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 `<top (required)>'
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 `<main>'
I am using Ubuntu 10.10
我正在使用Ubuntu 10.10
2 个解决方案
#1
7
You are missing shared libraries to install sqlite3.
您缺少安装sqlite3的共享库。
Probably one thing that most ROR install instructions or tutorials don't tell you is that when running on Linux you need shared libraries or if your a windows person dll's are missing or incompatible with the version you are trying to run.
大多数ROR安装说明或教程没有告诉你的一件事是,在Linux上运行时,你需要共享库,或者如果你的Windows人员dll缺失或与你试图运行的版本不兼容。
I see you are running RVM also. So you should try this.
我看到你也在运行RVM。所以你应该试试这个。
sudo apt-get install libsqlite3-dev
sudo gem install sqlite3-ruby
If you still have trouble installing the gem try this - drop the sudo in the line and just gem install
如果您仍然无法安装gem,请尝试此操作 - 将sudo放入行中并仅安装gem
gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib
Additionally it doesn't hurt to update all your libraries for Ubuntu.
另外,为Ubuntu更新所有库也没什么坏处。
Run this first before running the libraries for sqlite3:
在运行sqlite3的库之前先运行它:
sudo apt-get update
sudo apt-get upgrade
It will probably take some minutes to run the update and upgrade. You can also run this from the Admin --> System area . There is a menu that allows you to run all library updates and checks for dependencies which may be missing.
运行更新和升级可能需要几分钟时间。您也可以从管理员 - >系统区域运行此命令。有一个菜单允许您运行所有库更新并检查可能缺少的依赖项。
You could also run the sqlite install from the system applications GUI, as it will check dependency programs which may also be needed.
您还可以从系统应用程序GUI运行sqlite install,因为它将检查可能还需要的依赖项目。
Just remember when something doesn't install like the issue you are having with Ruby on Rails, it usually means that libraries are missing or the incorrect version needed.
只要记住当某些东西没有像你在Ruby on Rails上遇到的问题那样安装时,它通常意味着缺少库或者需要不正确的版本。
#2
0
Here's a better answer from HEROKU - cannot run git push heroku master
以下是HEROKU的更好答案 - 无法运行git push heroku master
Since you can't use sqlite3 on heroku add this to your Gemfile:
由于您无法在heroku上使用sqlite3,请将其添加到您的Gemfile中:
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end
#1
7
You are missing shared libraries to install sqlite3.
您缺少安装sqlite3的共享库。
Probably one thing that most ROR install instructions or tutorials don't tell you is that when running on Linux you need shared libraries or if your a windows person dll's are missing or incompatible with the version you are trying to run.
大多数ROR安装说明或教程没有告诉你的一件事是,在Linux上运行时,你需要共享库,或者如果你的Windows人员dll缺失或与你试图运行的版本不兼容。
I see you are running RVM also. So you should try this.
我看到你也在运行RVM。所以你应该试试这个。
sudo apt-get install libsqlite3-dev
sudo gem install sqlite3-ruby
If you still have trouble installing the gem try this - drop the sudo in the line and just gem install
如果您仍然无法安装gem,请尝试此操作 - 将sudo放入行中并仅安装gem
gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib
Additionally it doesn't hurt to update all your libraries for Ubuntu.
另外,为Ubuntu更新所有库也没什么坏处。
Run this first before running the libraries for sqlite3:
在运行sqlite3的库之前先运行它:
sudo apt-get update
sudo apt-get upgrade
It will probably take some minutes to run the update and upgrade. You can also run this from the Admin --> System area . There is a menu that allows you to run all library updates and checks for dependencies which may be missing.
运行更新和升级可能需要几分钟时间。您也可以从管理员 - >系统区域运行此命令。有一个菜单允许您运行所有库更新并检查可能缺少的依赖项。
You could also run the sqlite install from the system applications GUI, as it will check dependency programs which may also be needed.
您还可以从系统应用程序GUI运行sqlite install,因为它将检查可能还需要的依赖项目。
Just remember when something doesn't install like the issue you are having with Ruby on Rails, it usually means that libraries are missing or the incorrect version needed.
只要记住当某些东西没有像你在Ruby on Rails上遇到的问题那样安装时,它通常意味着缺少库或者需要不正确的版本。
#2
0
Here's a better answer from HEROKU - cannot run git push heroku master
以下是HEROKU的更好答案 - 无法运行git push heroku master
Since you can't use sqlite3 on heroku add this to your Gemfile:
由于您无法在heroku上使用sqlite3,请将其添加到您的Gemfile中:
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end