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

$ 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.

96286 次浏览

做这个

$ sudo apt-get install libpq-dev

试试这个:

sudo apt-get install libpq-dev
gem install pg

会有用的!

试试这个:

  1. 酿造安装后处理
  2. Gem install pg
  3. 捆绑式安装捆绑式安装

在 Mac OS X 上运行如下:

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

***/path/to/pg_config***是 pg _ config 的路径

在 Fedora/RHEL 系统上,这种方法奏效了:

sudo yum install libpqxx-devel

这在 在尝试安装 pg gem 时,无法找到 libpq-fe.h 标头中得到了回答

Depending on your environment:

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

然后再次运行 gem install pg

这对我很有效:

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

在 mac 上确保你的 postgres 是连接的。 你可以通过

brew link --overwrite postgresql

This fixed the issue for me.

我在亚马逊 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

我使用 Ubuntu-16,并且使用这里展示的方法: https://www.postgresql.org/download/linux/ubuntu/安装 postgreql-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/ 我最终解决了这个问题。

brew install postgresql为我工作。

Installation of postgresql was giving another error

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)

对于 Amazon Linux (AWS) :

sudo yum install postgresql-devel

然后再次运行命令

对于 高山 Linux,你可以添加 libpq-fe.h:

apk add postgresql-dev
  • 那么: Ubuntu
  • 语言编程: C

$ sudo apt-get install libpq-dev

In my case I was putting the directory path wrong. So:

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

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

GL

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

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

然后简单地运行 sudo yum install postgresql10-devel,找到了!

如果您已经通过 自酿的在 MacOS 上安装了 postgresql

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