安装pg(0.15.1)时发生错误,Bundler不能继续

时间:2021-07-14 23:10:15

I am fairly new to ruby and while going through the railstutorial.org, I ran into an issue. When I attempt to bundle install my ruby application with 'bundle install --without production', I get:

我对ruby相当陌生,在浏览railstutorial.org时,我遇到了一个问题。当我尝试将我的ruby应用程序与“捆绑安装—不生产”捆绑在一起时,我得到:

Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.11
Using minitest 4.7.5
Using multi_json 1.10.1
Using thread_safe 0.3.4
Using tzinfo 0.3.41
Using activesupport 4.0.8
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.0.8
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.0.8
Using activemodel 4.0.8
Using activerecord-deprecated_finders 1.0.3
Using arel 4.0.2
Using activerecord 4.0.8
Using bundler 1.7.3
Using mini_portile 0.6.0
Using nokogiri 1.6.3.1
Using xpath 2.0.0
Using capybara 2.1.0
Using ffi 1.9.6
Using childprocess 0.5.5
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.0.8
Using coffee-rails 4.0.1
Using diff-lcs 1.2.5
Using hike 1.2.3
Using jbuilder 1.0.2
Using jquery-rails 3.0.4
Using json 1.8.1

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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}/
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config


Gem files will remain installed in /Users/bryansaxon/.rvm/gems/ruby-2.0.0-        
p576@railstutorial_rails_4_0/gems/pg-0.15.1 for inspection.
Results logged to /Users/bryansaxon/.rvm/gems/ruby-2.0.0-p576@railstutorial_rails_4_0/gems/pg- 
0.15.1/ext/gem_make.out
An error occurred while installing pg (0.15.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.15.1'` succeeds before bundling.

Then when I try to 'gem install pg -v '0.15.1'', I get:

当我尝试“gem安装pg -v '0.15.1”时,我得到:

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

/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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}/
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config


Gem files will remain installed in /Users/bryansaxon/.rvm/gems/ruby-2.0.0-    
p576@railstutorial_rails_4_0/gems/pg-0.15.1 for inspection.
Results logged to /Users/bryansaxon/.rvm/gems/ruby-2.0.0-p576@railstutorial_rails_4_0/gems/pg-
0.15.1/ext/gem_make.out

Then I tried to install 'gem install pg -v '0.15.1' --with-pg_config' and got:

然后我尝试安装“gem install pg -v‘0.15.1’—with-pg_config”,得到:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --with-pg_config

Now I am stuck and not sure how to fix the issue. Have tried numerous methods through other posts outlying the same issue but nothing seems to work. Any help would be much appreciated! I am on a Mac running Yosemite.

现在我被困住了,不知道如何解决这个问题。已经尝试过无数的方法,通过其他贴出同样问题的帖子,但似乎没有任何效果。如有任何帮助,我们将不胜感激!我在运行Yosemite的Mac电脑上。

Here is my Gemfile:

这是我Gemfile:

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.8'
gem 'pg', '0.15.1'

group :development, :test do
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '4.0.3'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'rails_12factor', '0.0.2'
end

2 个解决方案

#1


1  

Since gem 'pg', '0.15.1' is not in group :production, bundler try ti install it even if you run it with --without production option. Thus, you have 2 options:

由于gem“pg”,“0.15.1”不在组:production, bundler尝试ti安装它,即使您运行它——没有生产选项。因此,您有两个选择:

  • install postgresql first and use it in development
  • 首先安装postgresql并在开发中使用它
  • move gem "pg" to production group, and use different database in development. For example - gem "sqlite3"
  • 将gem“pg”移动到生产组,并在开发中使用不同的数据库。例如- gem "sqlite3"

#2


0  

Try to use '>=0.15.1' instead of '0.15.1'.

尽量使用'>=0.15.1'而不是'0.15.1'。

#1


1  

Since gem 'pg', '0.15.1' is not in group :production, bundler try ti install it even if you run it with --without production option. Thus, you have 2 options:

由于gem“pg”,“0.15.1”不在组:production, bundler尝试ti安装它,即使您运行它——没有生产选项。因此,您有两个选择:

  • install postgresql first and use it in development
  • 首先安装postgresql并在开发中使用它
  • move gem "pg" to production group, and use different database in development. For example - gem "sqlite3"
  • 将gem“pg”移动到生产组,并在开发中使用不同的数据库。例如- gem "sqlite3"

#2


0  

Try to use '>=0.15.1' instead of '0.15.1'.

尽量使用'>=0.15.1'而不是'0.15.1'。