pg 0.18.4
在我的开发环境中工作正常但在Heroku中没有。在本地,当我刚刚运行bundler install
时它首先失败但在我手动运行gem install pg -v '0.18.4'
时成功了。我尝试配置一个Heroku Postgres插件,但无济于事。
当我运行git push heroku master
时,我得到以下输出:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote: current directory: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/gems/pg-0.18.4/ext
remote: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/ruby-2.3.0/bin/ruby -r ./siteconf20160123-315-8ytli9.rb extconf.rb --with-pg-config=/usr/pgsql-9.4/bin/pg_config
remote: Using config values from /usr/pgsql-9.4/bin/pg_config
remote: sh: 1: /usr/pgsql-9.4/bin/pg_config: not found
remote: sh: 1: /usr/pgsql-9.4/bin/pg_config: not found
remote: checking for libpq-fe.h... no
remote: Can't find the 'libpq-fe.h header
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote: Provided configuration options:
remote: --with-opt-dir
remote: --without-opt-dir
remote: --with-opt-include
remote: --without-opt-include=${opt-dir}/include
remote: --with-opt-lib
remote: --without-opt-lib=${opt-dir}/lib
remote: --with-make-prog
remote: --without-make-prog
remote: --srcdir=.
remote: --curdir
remote: --ruby=/tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/ruby-2.3.0/bin/$(RUBY_BASE_NAME)
remote: --with-pg
remote: --without-pg
remote: --enable-windows-cross
remote: --disable-windows-cross
remote: --with-pg-config
remote: --with-pg-dir
remote: --without-pg-dir
remote: --with-pg-include
remote: --without-pg-include=${pg-dir}/include
remote: --with-pg-lib
remote: --without-pg-lib=${pg-dir}/lib
remote: To see why this extension failed to compile, please check the mkmf.log which can be found here:
remote: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0-static/pg-0.18.4/mkmf.log
remote: extconf failed, exit code 1
remote: Gem files will remain installed in /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/gems/pg-0.18.4 for inspection.
remote: Results logged to /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0-static/pg-0.18.4/gem_make.out
...
Installing tzinfo 1.2.2
remote:
remote: Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:
remote: current directory: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/gems/pg-0.18.4/ext
remote: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/ruby-2.3.0/bin/ruby -r ./siteconf20160123-315-8ytli9.rb extconf.rb --with-pg-config=/usr/pgsql-9.4/bin/pg_config
remote: Using config values from /usr/pgsql-9.4/bin/pg_config
remote: sh: 1: /usr/pgsql-9.4/bin/pg_config: not found
remote: sh: 1: /usr/pgsql-9.4/bin/pg_config: not found
remote: checking for libpq-fe.h... no
remote: Can't find the 'libpq-fe.h header
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote:
remote: Provided configuration options:
remote: --with-opt-dir
remote: --without-opt-dir
remote: --with-opt-include
remote: --without-opt-include=${opt-dir}/include
remote: --with-opt-lib
remote: --without-opt-lib=${opt-dir}/lib
remote: --with-make-prog
remote: --without-make-prog
remote: --srcdir=.
remote: --curdir
remote: --ruby=/tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/ruby-2.3.0/bin/$(RUBY_BASE_NAME)
remote: --with-pg
remote: --without-pg
remote: --enable-windows-cross
remote: --disable-windows-cross
remote: --with-pg-config
remote: --with-pg-dir
remote: --without-pg-dir
remote: --with-pg-include
remote: --without-pg-include=${pg-dir}/include
remote: --with-pg-lib
remote: --without-pg-lib=${pg-dir}/lib
remote:
remote: To see why this extension failed to compile, please check the mkmf.log which can be found here:
remote:
remote: /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0-static/pg-0.18.4/mkmf.log
remote:
remote: extconf failed, exit code 1
remote:
remote: Gem files will remain installed in /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/gems/pg-0.18.4 for inspection.
remote: Results logged to /tmp/build_a5396c397d6502ad1b8bd59388bde2be/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0-static/pg-0.18.4/gem_make.out
我的Gemfile:
ruby '2.3.0'
source 'https://rubygems.org'
# Server
gem 'rails', '4.2.5'
gem 'unicorn'
gem 'figaro'
# Database
gem 'bcrypt', '~> 3.1.7'
gem 'paper_trail', '~> 4.0.0'
gem 'pg'
gem 'default_value_for'
# Json
gem 'jbuilder', '~> 2.0'
gem 'oj'
gem 'json-schema'
gem 'responders'
# OAuth
gem 'doorkeeper'
group :production do
# Heroku
gem 'rails_12factor'
# Exceptions
gem 'exception_notification'
end
group :development do
# Deployment
gem 'capistrano', '3.3.3'
gem 'capistrano-rails'
gem 'capistrano3-unicorn'
gem 'capistrano-rvm'
gem 'capistrano-postgresql'
gem 'capistrano-safe-deploy-to', '~> 1.1.1'
# Server
gem 'spring'
# Database
gem 'rails-erd'
end
group :development, :test do
# Error Pages
gem 'better_errors'
gem 'binding_of_caller'
# Database
gem 'faker'
# Debug
gem 'byebug'
# Logging
gem 'lograge'
# Testing
# This can't just be in group :test because of https://github.com/rspec/rspec-rails/issues/148
gem 'rspec-rails'
end
group :test do
# Database
# Mocking
gem 'factory_girl'
gem 'factory_girl_rails'
# Cleaning
gem 'database_cleaner'
# Code Coverage
gem 'simplecov', require: false
# Debug
gem 'pry-rescue'
gem 'pry-stack_explorer'
# Profiling
# https://github.com/sinisterchipmunk/rspec-prof/issues/10
gem 'rspec-prof', git: 'https://github.com/sinisterchipmunk/rspec-prof.git'
end
group :doc do
# RDoc
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
end
更新:Heroku帮助即将结束。
当我创建一个新的Rails应用程序并进行部署时(相同的pg
版本,没有问题。我行为不端的应用程序中的哪些文件可能导致这种不同的行为?我正在努力解决问题,但到目前为止没有这样的运气。
答案 0 :(得分:0)
检查Bundler configuration。为确保您没有任何内容,请运行bundle config
,并可能bundle remove <config name>
。在这种情况下,如果您设置了与默认设置冲突的内容,请尝试bundle remove build.pg
。