2015-06-29 79 views
1

繼Tony Coconate的Rails + Ember.js (with the Ember CLI)教程,我們正在嘗試創建一個新的Rails API。安裝pg(0.18.2)時發生錯誤,並且Bundler無法繼續

當我們運行rails new api -T -d postgresql,我們得到了以下錯誤消息:

An error occurred while installing pg (0.18.2), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.18.2'` succeeds before bundling. 

這就是Gemfile文件看起來像:

source "https://rubygems.org" 

gem "rails", "4.2.1" 

gem "activeadmin", github: "gregbell/active_admin" # Until it"s 1.0.0 
gem "coffee-rails", "~> 4.0.0" 
gem "devise" 
gem "grape" 
gem "grape-active_model_serializers" 
gem "grape-swagger-rails" 
gem "jquery-rails" 
gem "pg" 
gem "rack-cors", require: "rack/cors" 
gem "sass-rails", "~> 4.0.3" 
gem "uglifier", ">= 1.3.0" 

group :development do 
    gem "better_errors" 
    gem "meta_request" 
    gem "quiet_assets" 
    gem "spring" 
end 

group :development, :test do 
    gem "capybara" 
    gem "capybara-screenshot" 
    gem "database_cleaner" 
    gem "factory_girl_rails" 
    gem "faker" 
    gem "poltergeist" 
    gem "pry-nav" 
    gem "pry-rails" 
    gem "pry-stack_explorer" 
    gem "pry-theme" 
    gem "rspec-rails" 
    gem "rubocop" 
    gem "shoulda-matchers" 
    gem "spring-commands-rspec" 
end 

當我們運行bundle install,我們得到了以下錯誤消息:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /Users/user_name/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150629-73521-9m0ocx.rb 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 
    --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=/Users/user_name/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/lib 

extconf failed, exit code 1 

Gem files will remain installed in /Users/user_name/.rvm/gems/ruby-2.2.1/gems/pg-0.18.2 for inspection. 
Results logged to /Users/user_name/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-14/2.2.0-static/pg-0.18.2/gem_make.out 
An error occurred while installing pg (0.18.2), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.18.2'` succeeds before bundling. 

當我們運行gem install pg -v '0.18.2',我們還得到一個錯誤:

Building native extensions. This could take a while... 
ERROR: Error installing pg: 
    ERROR: Failed to build gem native extension. 

    /Users/user_name/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150629-73553-uaymt5.rb 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 
    --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=/Users/user_name/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/lib 

extconf failed, exit code 1 

Gem files will remain installed in /Users/user_name/.rvm/gems/ruby-2.2.1/gems/pg-0.18.2 for inspection. 
Results logged to /Users/user_name/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-14/2.2.0-static/pg-0.18.2/gem_make.out 

的什麼是錯的,而最重要的是,我們如何解決這個問題的任何想法?

回答

9

好的,所以我找到了解決我的問題。

首先,我安裝了自制的PG寶石,as explained here

brew install postgres 

然後,我無法啓動Rails服務器,所以我也跟着this solution就跑:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 

現在,一切都工作中。

2

這表明打包器不能訪問psql二進制

您可以安裝postgresql,在對方的回答提出一個錯誤。但是,如果你正在使用從http://postgresapp.com/Postgres.app,那麼你就必須通過添加下面的行放在~/.bash_profile文件中設置你的$PATH

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

更多信息:http://postgresapp.com/documentation/cli-tools.html

相關問題