2013-04-04 43 views
6

Tôi đang làm việc để xây dựng ứng dụng clone twitter trong Hướng dẫn Rails của Hartl. Tôi nhân bản repo git của tôi (https://github.com/stewartmccoy/rails_tutorial) và đặt mã vào máy tính cá nhân của tôi, trước đây đã có trên máy tính của tôi. Vì vậy, môi trường nhà phát triển của tôi có thể hơi khác so với những gì được chỉ định trong Gemfile của tôi.'Không thể tìm thấy pg-0.12.2 trong bất kỳ nguồn nào' khi chạy rspec

môi trường của tôi: Mac OS 10.6.8 Rails 3.2.13 ruby ​​1.9.3p392 (2013/02/22 sửa đổi 39.386) [x86_64-darwin10.8.0]

* GEMS ĐỊA PHƯƠNG *

  • 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)
  • địa chỉ (2.3.2)
  • chú thích (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)
  • cà phê-ray (3.2.2)
  • cà phê kịch bản (2.2.0)
  • cà phê kịch bản nguồn (1.6.2, 1.6.1, 1.4.0)
  • dưa leo (1.2.1)
  • dưa chuột-ray (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)
  • kẻ giả mạo (1.0.1)
  • ffi (1.4.0, 1.3.1)
  • dưa chuột (2.11.5)
  • tăng (1.2.1)
  • i18n (0.6.1)
  • io-console (0,3)
  • hành trình (1.0.4)
  • jquery-ray (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- các loại (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 bộ nhớ cache (1,2)
  • rack-ssl (1.3.3, 1.3.2)
  • rack-test (0.6.2)
  • ray (3.2.13, 3.2.1)
  • railties (3.2.13, 3.2.11, 3.2.1)
  • cào (10.0.3, 0.9.2.2)
  • rdoc (3.12 .2, 3.12, 3.9.5)
  • rspec-core (2.13.1)
  • rspec-mong đợi (2.13.0)
  • rspec-mocks (2.13.0)
  • rspec-ray (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-ray (3.2.6, 3.2.5)
  • selen-webdriver (2.31.0, 2,27 .2)
  • sprockets (2.2.2, 2.1. 3)
  • sqlite3 (1.3.7)
  • thor (0.17.0, 0.16.0, 0.14.6)
  • nghiêng (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 

Dù sao, tôi đang cố gắng để chạy thử nghiệm ngay sau khi Liệt kê 8.18 (http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec-reviewing_form_submission):

$ bundle exec rspec spec/models/user_spec.rb 

Và tôi nhận được lỗi này:

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

Vì vậy, tôi chạy bundle install và và nhận được lỗi này:

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. 

Cuối cùng, tôi đã cố gắng PATH=$PATH:/Library/PostgreSQL/9.2/bin sudo gem install pg và nhận :

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 

Gợi ý?

Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn!

Trả lời

3

Bạn nên kiểm tra bộ điều hợp nào bạn có trên config/database.yml. Có thể bạn đã thiết lập bộ điều hợp postgres hoặc pg với môi trường kiểm tra.

Tuy nhiên, trên Gemfile của bạn, bạn có postgres thiết lập chỉ cho sản xuất:

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

nếu bạn thêm các môi trường thử nghiệm và chạy một lần nữa, nó sẽ làm việc:

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

Cũng xem giải pháp từ this answer:

Thử cài đặt đá quý bằng lệnh sau:

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

Nếu bạn không biết nơi pg_config của bạn là, hãy chạy lệnh này:

which pg_config 

BTW, bạn đã cài đặt postgres trên desktop của bạn? Tất cả những gì bạn cần là gói phát triển postgres để cài đặt gem.

+0

ah. Tôi vừa kiểm tra tệp database.yml của mình và tất cả các bộ điều hợp được thiết lập cho sqlite3. Tôi sẽ cần phải sửa chữa điều đó. Lạ lùng vì tôi nghĩ rằng tôi đã đặt sản xuất cho bưu điện. – stewartmccoy

+0

btw, tôi chỉ kiểm tra câu trả lời của bạn một lần nữa, và bạn đang thực sự gặp rắc rối với việc cài đặt postgres, bạn có thể cho tôi biết hệ điều hành của bạn không? – rorra

+0

tôi cập nhật Gemfile: 'nhóm: kiểm tra,: sản xuất làm đá quý 'pg', '0.12.2' end' và cũng database.yml: ' sản xuất: adapter: postgresql cơ sở dữ liệu: rails_tutorial hồ bơi: 5 timeout: 5000' nhưng vẫn nhận được: 'không thể tìm pg-0.12.2 trong bất kỳ nguồn Run' bó install' để cài đặt thiếu gems.' – stewartmccoy