109
$ sudo bundle install

结果

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.

我是 make$ gem install pg -v '0.14.1'但这无济于事

我的宝石文件

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 */

--------------------

请帮帮我。谢谢你。

对不起这篇文字。您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的情况。

4

16 回答 16

226

做这个

$ sudo apt-get install libpq-dev
于 2012-10-26T12:01:48.613 回答
81

尝试安装 pg gem 时找不到“libpq-fe.h 标头”中对此进行了回答

根据您的环境:

  • 苹果电脑: brew install postgresql
  • Ubuntusudo apt-get install libpq-dev
  • RHELyum install postgresql-devel

然后gem install pg再次运行

于 2015-11-23T17:31:46.673 回答
19

尝试这个:

  1. 冲泡安装postgresql
  2. 宝石安装 pg
  3. 捆绑安装
于 2013-11-04T13:46:11.747 回答
17

在 Fedora/RHEL 系统上,这成功了:

sudo yum install libpqxx-devel
于 2015-02-01T05:14:42.233 回答
15
  • 所以:Ubuntu
  • 语言编程:C

$ sudo apt-get install libpq-dev

就我而言,我把目录路径放错了。所以:

从:gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99

至:gcc -o lib_version lib_version.c -I /usr/include/postgresql -lpq -std=c99

总帐

于 2019-10-05T22:06:04.093 回答
8

对于Alpine Linux,您可以添加libpq-fe.h

apk add postgresql-dev
于 2019-09-09T23:36:36.693 回答
8

对于亚马逊 Linux (AWS):

sudo yum install postgresql-devel

然后再次运行您的命令

于 2019-04-03T08:17:39.250 回答
5

在 Mac OS X 上运行如下:

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

***/path/to/pg_config***是 pg_config 的路径

于 2014-01-08T09:39:09.853 回答
4

我在 Amazon AMI 上的 Jenkins 服务器上遇到了这个问题。

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

然后根据您需要的版本,您可以安装所需的库

$ 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

然后你可以安装相应的版本,在我的例子中是 9.4:

sudo yum install postgresql94-devel
于 2016-12-08T22:25:11.773 回答
3

这发生在我使用 capistrano 在 centos7 发行版中部署我的应用程序时。显然 gem 需要一些头文件,这些头文件可以通过安装正确的开发包来解决。

我通过运行修复了它,sudo yum search postgres | grep devel并为我的 postgres 安装找到了正确的包,即 10。

然后简单地运行sudo yum install postgresql10-devel,然后尤里卡!

于 2019-10-14T05:22:06.077 回答
2

尝试这个:

sudo apt-get install libpq-dev
gem install pg 

这将是有效的!

于 2013-06-22T11:34:08.153 回答
2

在 mac 上确保您的 postgres 已链接。你可以这样做

brew link --overwrite postgresql

这为我解决了这个问题。

于 2016-05-03T17:14:54.307 回答
1

我使用 Ubuntu-16。我使用这里显示的方法:https ://www.postgresql.org/download/linux/ubuntu/ 来安装postgresql-9.6;我"sudo apt-get install libpq-dev"用来安装devlib。但它仍然无法工作。所以我用这个方法ln建立软链接,这里是: sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/; sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/ 我终于解决了这个问题。

于 2017-07-26T16:40:50.147 回答
1

brew install postgresql为我工作。

安装 postgresql 出现另一个错误

Error: The following directories are not writable by your user: /usr/local/lib/pkgconfig /usr/local/share/info /usr/local/share/man/man3

通过向当前用户授予对上述目录的访问权限来修复此错误

sudo chown -R $(whoami) (path)

于 2018-10-05T22:45:10.143 回答
0

如果您已通过Homebrewpostgresql在 MacOS 上安装

brew install postgresql@95 # 9.5 is the version needed in my project

您可能需要pg_config根据您的版本找到libpq

我的项目需要旧版本的pg.

gem install pg -v '0.20.0' -- --with-pg config=/usr/local/Cellar/libpq/13.1/bin/pg_config
于 2021-02-07T22:16:09.430 回答
0

这对我有用:

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
于 2015-12-27T00:20:50.227 回答