rails install pg - Can't find the 'libpq-fe.h header

匿名 (未验证) 提交于 2019-12-03 02:45:02

问题:

$ sudo bundle install 

Result

Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Using rake (0.9.2.2)  Using i18n (0.6.1)  Using multi_json (1.3.6)  Using activesupport (3.2.8)  Using builder (3.0.4)  Using activemodel (3.2.8)  Using erubis (2.7.0)  Using journey (1.0.4)  Using rack (1.4.1)  Using rack-cache (1.2)  Using rack-test (0.6.2)  Using hike (1.2.1)  Using tilt (1.3.3)  Using sprockets (2.1.3)  Using actionpack (3.2.8)  Using mime-types (1.19)  Using polyglot (0.3.3)  Using treetop (1.4.11)  Using mail (2.4.4)  Using actionmailer (3.2.8)  Using arel (3.0.2)  Using tzinfo (0.3.33)  Using activerecord (3.2.8)  Using activeresource (3.2.8)  Using bundler (1.2.1)  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.5)  Using rdoc (3.12)  Using thor (0.16.0)  Using railties (3.2.8)  Using coffee-rails (3.2.2)  Using jquery-rails (2.1.3)  Installing pg (0.14.1) with native extensions  Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.          /usr/bin/ruby1.8 extconf.rb  checking for pg_config... yes Using config values from /usr/bin/pg_config You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 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=/usr/bin/ruby1.8     --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 /var/lib/gems/1.8/gems/pg-0.14.1 for inspection. Results logged to /var/lib/gems/1.8/gems/pg-0.14.1/ext/gem_make.out An error occurred while installing pg (0.14.1), and Bundler cannot continue. Make sure that `gem install pg -v '0.14.1'` succeeds before bundling. 

I am make $ gem install pg -v '0.14.1' But this is not help

My Gemfile

source 'https://rubygems.org'  #gem 'rails', '3.0.9'  #gem 'sqlite3', '1.3.6', :group => :development   gem 'rails', '3.2.8'  # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git'   gem 'sqlite3' gem 'pg' gem 'taps'  gem 'json'  # Gems used only for assets and not required # in production environments by default. group :assets do   gem 'sass-rails',   '~> 3.2.3'   gem 'coffee-rails', '~> 3.2.1'    # See https://github.com/sstephenson/execjs#readme for more supported runtimes   # gem 'therubyracer', :platforms => :ruby    gem 'uglifier', '>= 1.0.3' end  gem 'jquery-rails'   #group :production do   #gem 'pg' #end #group :development do   #gem 'sqlite3' #end 

gem_make.out

/usr/bin/ruby1.8 extconf.rb  checking for pg_config... yes Using config values from /usr/bin/pg_config You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 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=/usr/bin/ruby1.8     --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 

mkmf.log

find_executable: checking for pg_config... -------------------- yes  --------------------  find_header: checking for libpq-fe.h... -------------------- no  "gcc -E -I. -I/usr/lib/ruby/1.8/i686-linux -I. -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I -fno-strict-aliasing -g -g -O2  -fPIC    conftest.c -o conftest.i" conftest.c:1:22: fatal error: libpq-fe.h: No such file or directory compilation terminated. checked program was: /* begin */ 1: #include <libpq-fe.h> /* end */  -------------------- 

Help me please. Thank you.

Sorry for this text. Your post does not have much context to explain the code sections; please explain your scenario more clearly.

回答1:

Just make this

$ sudo apt-get install libpq-dev 


回答2:

This is answered in Can't find the 'libpq-fe.h header when trying to install pg gem

Depending on your environment:

  • Mac: brew install postgresql
  • Ubuntu: sudo apt-get install libpq-dev
  • RHEL: yum install postgresql-devel

Then run gem install pg again



回答3:

Try this:

  1. brew install postgresql
  2. gem install pg
  3. bundle install


回答4:

On Fedora/RHEL systems this did the trick:

sudo yum install libpqxx-devel 


回答5:

On Mac OS X run like this:

gem install pg -- --with-pg-config=***/path/to/pg_config*** 

***/path/to/pg_config*** is path to pg_config



回答6:

try this:

sudo apt-get install libpq-dev gem install pg  

it would be works!



回答7:

On mac make sure your postgres is linked. You can do it by

brew link --overwrite postgresql 

This fixed the issue for me.



回答8:

This worked for me:

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config 


回答9:

I had this issue with a Jenkins server on Amazon AMI.

$ pg_config | grep VERSION VERSION = PostgreSQL 9.4.9 

Then depending on which version you need you can install the required lib

$ sudo yum list postgresql* | grep devel postgresql92-devel.x86_64               9.2.18-1.59.amzn1          @amzn-main postgresql94-devel.x86_64               9.4.9-1.67.amzn1           @amzn-main postgresql8-devel.x86_64                8.4.20-5.52.amzn1          amzn-main postgresql93-devel.x86_64               9.3.14-1.62.amzn1          amzn-main postgresql95-devel.x86_64               9.5.4-1.71.amzn1           amzn-main 

Then you can just install the corresponding version, in my case for version 9.4:

sudo yum install postgresql94-devel 


回答10:

I use Ubuntu-16. And I use the method showed here:https://www.postgresql.org/download/linux/ubuntu/ to install postgresql-9.6; And I use "sudo apt-get install libpq-dev" to install the devlib.But It still can't work. So I use the method ln to establish soft link, here it is : sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/; sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/ And I solve the problem at last.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!