ste*_*coy 6 postgresql gem ruby-on-rails pg
我正在使用Hartl的Rails教程构建twitter克隆应用程序.我克隆了我的git repo(https://github.com/stewartmccoy/rails_tutorial)并将代码放到我以前在我的工作计算机上的个人计算机上.因此,我的开发人员环境可能与我的Gemfile中指定的略有不同.
我的环境:Mac OS 10.6.8 Rails 3.2.13 ruby 1.9.3p392(2013-02-22修订版39386)[x86_64-darwin10.8.0]
*本地宝石*
我的Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.11'
gem 'bootstrap-sass', '2.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.11.0'
# gem 'guard-rspec', '1.2.1'
# gem 'guard-spork', '1.2.0'
# gem 'spork', '0.9.2'
end
group :development do
gem 'annotate', '2.5.0'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '3.2.5'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
group :test do
gem 'capybara', '1.1.2'
gem 'factory_girl_rails', '4.1.0'
gem 'cucumber-rails', '1.2.1', :require => false
gem 'database_cleaner', '0.7.0'
# gem 'launchy', '2.1.0'
# gem 'rb-fsevent', '0.9.1', :require => false
# gem 'growl', '1.0.3'
end
group :production do
gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)
无论如何,我试图在代码清单8.18(http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec-reviewing_form_submission)之后运行测试:
$ bundle exec rspec spec/models/user_spec.rb
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
Could not find pg-0.12.2 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
所以,我运行bundle install并得到此错误:
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Using rake (10.0.3)
Using i18n (0.6.1)
Using multi_json (1.5.0)
Using activesupport (3.2.11)
Using builder (3.0.4)
Using activemodel (3.2.11)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.4)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.2.2)
Using actionpack (3.2.11)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.4.4)
Using actionmailer (3.2.11)
Using arel (3.0.2)
Using tzinfo (0.3.35)
Using activerecord (3.2.11)
Using activeresource (3.2.11)
Using addressable (2.3.2)
Using annotate (2.5.0)
Using bcrypt-ruby (3.0.1)
Using bootstrap-sass (2.1.0.0)
Using will_paginate (3.0.3)
Using bootstrap-will_paginate (0.0.6)
Using nokogiri (1.5.6)
Using ffi (1.3.1)
Using childprocess (0.3.6)
Using websocket (1.0.6)
Using libwebsocket (0.1.7.1)
Using rubyzip (0.9.9)
Using selenium-webdriver (2.27.2)
Using xpath (0.1.4)
Using capybara (1.1.2)
Using coffee-script-source (1.4.0)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.7.6)
Using rdoc (3.12)
Using thor (0.16.0)
Using railties (3.2.11)
Using coffee-rails (3.2.2)
Using diff-lcs (1.1.3)
Using gherkin (2.11.5)
Using cucumber (1.2.1)
Using cucumber-rails (1.2.1)
Using database_cleaner (0.7.0)
Using factory_girl (4.1.0)
Using factory_girl_rails (4.1.0)
Using faker (1.0.1)
Using jquery-rails (2.0.2)
Installing pg (0.12.2)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/stewartmccoy/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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/stewartmccoy/.rvm/rubies/ruby-1.9.3-p392/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.12.2 for inspection.
Results logged to /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.12.2/ext/gem_make.out
An error occurred while installing pg (0.12.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.12.2'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)
最后,我试过PATH=$PATH:/Library/PostgreSQL/9.2/bin sudo gem install pg并得到了:
Password:
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/Users/stewartmccoy/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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/stewartmccoy/.rvm/rubies/ruby-1.9.3-p392/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.0 for inspection.
Results logged to /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.0/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)
建议?
非常感谢您的帮助!
您应该检查 config/database.yml 上有哪些适配器。也许您已经在测试环境中设置了 postgres 或 pg 适配器。
但是,在您的 Gemfile 上,您已经设置了仅用于生产的 postgres:
group :production do
gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)
如果您添加测试环境并再次运行捆绑包,它应该可以工作:
group :test, :production do
gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)
另请参阅此答案中的解决方案:
尝试使用以下命令安装 gem:
gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'
Run Code Online (Sandbox Code Playgroud)
如果您不知道 pg_config 在哪里,请运行以下命令:
which pg_config
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你已经在桌面上安装了 postgres 吗?您所需要的只是 postgres 开发包来安装 gem。
| 归档时间: |
|
| 查看次数: |
8903 次 |
| 最近记录: |