"Could not find pg-0.12.2 in any of the sources" when rspec starts

I am working on creating a clone twitter application in the Hartl Rails tutorial. I cloned my git repo ( https://github.com/stewartmccoy/rails_tutorial ) and put the code on my personal computer, which was previously on my working computer. So, my development environment may be slightly different from what is listed in my Gemfile.

My environment: Mac OS 10.6.8 Rails 3.2.13 ruby ​​1.9.3p392 (2013-02-22 version 39386) [x86_64-darwin10.8.0]

* LOCAL GEMS *

  • actionmailer (3.2.13, 3.2.11, 3.2.1)
  • actionpack (3.2.13, 3.2.11, 3.2.1)
  • activemodel (3.2.13, 3.2.11, 3.2.1)
  • activerecord (3.2.13, 3.2.11, 3.2.1)
  • activeresource (3.2.13, 3.2.11, 3.2.1)
  • activesupport (3.2.13, 3.2.11, 3.2.1)
  • addressable (2.3.2)
  • annotate (2.5.0)
  • arel (3.0.2)
  • bcrypt-ruby (3.0.1)
  • bigdecimal (1.1.0)
  • bootstrap-sass (2.1.0.0)
  • bootstrap-will_paginate (0.0.6)
  • builder (3.0.4)
  • bundler (1.3.4)
  • capybara (2.0.2, 1.1.2)
  • childprocess (0.3.9, 0.3.6)
  • coffee rails (3.2.2)
  • coffee- script (2.2.0)
  • coffee- script -source (1.6.2, 1.6.1, 1.4.0)
  • cucumber (1.2.1)
  • cucumber rails (1.2.1)
  • database_cleaner (0.7.0)
  • diff-lcs (1.2.1, 1.1.3)
  • erubis (2.7.0)
  • execjs (1.4.0)
  • factory_girl (4.1.0)
  • factory_girl_rails (4.1.0)
  • faker (1.0.1)
  • ffi (1.4.0, 1.3.1)
  • gherkin (2.11.5)
  • hike (1.2.1)
  • i18n (0.6.1)
  • io-console (0.3)
  • travel (1.0.4)
  • jquery-rails (2.2.1, 2.1.4, 2.0.2)
  • json (1.7.7, 1.7.6, 1.7.5, 1.5.5)
  • libwebsocket (0.1.7.1)
  • mail (2.5.3, 2.4.4)
  • mime-types (1.21, 1.19)
  • minitest (2.5.1)
  • multi_json (1.7.1, 1.5.0)
  • nokogiri (1.5.8, 1.5.7, 1.5.6)
  • pg (0.14.1)
  • polyglot (0.3.3)
  • rack (1.4.5, 1.4.4, 1.4.1)
  • rack-cache (1.2)
  • rack-ssl (1.3.3, 1.3.2)
  • test stand (0.6.2)
  • rails (3.2.13, 3.2.1)
  • railties (3.2.13, 3.2.11, 3.2.1)
  • rake (10.0.3, 0.9.2.2)
  • rdoc (3.12.2, 3.12, 3.9.5)
  • rspec-core (2.13.1)
  • rspec-wait (2.13.0)
  • rspec-mocks (2.13.0)
  • rspec-rails (2.13.0)
  • rubygems-bundler (1.1.1)
  • rubyzip (0.9.9)
  • rvm (1.11.3.6)
  • sass (3.2.7, 3.2.4)
  • sass-rails (3.2.6, 3.2.5)
  • selenium-webdriver (2.31.0, 2.27.2)
  • stars (2.2.2, 2.1.3)
  • sqlite3 (1.3.7)
  • thor (0.17.0, 0.16.0, 0.14.6)
  • tilt (1.3.6, 1.3.3)
  • treetop (1.4.12)
  • tzinfo (0.3.37, 0.3.35)
  • uglifier (1.3.0)
  • websocket (1.0.7, 1.0.6)
  • will_paginate (3.0.3)
  • xpath (1.0.0, 0.1.4)

My 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 

In any case, I try to run the test immediately after Listing 8.18 ( http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec-reviewing_form_submission ):

 $ bundle exec rspec spec/models/user_spec.rb 

And I get this error:

 Could not find pg-0.12.2 in any of the sources Run `bundle install` to install missing gems. 

So, I run bundle install and get this error:

 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. 

Finally, I tried PATH=$PATH:/Library/PostgreSQL/9.2/bin sudo gem install pg and got:

 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 

Suggestions?

Many thanks for your help!

+6
source share
1 answer

You should check which adapters you have in config / database.yml. You might have configured the postgres or pg adapter using the test environment.

However, in your Gemfile you have postgres settings just for production:

 group :production do gem 'pg', '0.12.2' end 

if you add a test environment and run bundle again, it should work:

 group :test, :production do gem 'pg', '0.12.2' end 

Also see the solution from this answer :

Try setting the stone with this command:

 gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG' 

If you do not know where your pg_config is located, run the following command:

 which pg_config 

By the way, have you already installed postgres on your desktop? All you need is a postgres development kit for installing the gem.

+3
source

All Articles