[英]'pg' works locally, but not when deployed to Heroku
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
版本,没有问题。行为不当的应用程序中的哪些文件可能会导致这种不同的行为?我正在努力找出问题所在,但到目前为止还没有运气。
检查您的Bundler配置 。 为了确保您那里没有任何东西,请运行bundle config
并可能需要bundle remove <config name>
。 在这种情况下,请尝试bundle remove build.pg
,以防设置与默认设置冲突的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.