rails install pg - 找不到'libpq-fe.h标头

时间:2012-10-26 11:27:38

标签: ruby-on-rails ruby-on-rails-3 sqlite pg

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

我正在制作$ gem install pg -v '0.14.1'但这不是帮助

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

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

请帮帮我。谢谢。

对不起,请注意这个问题。 你的帖子没有太多的上下文来解释代码部分;请更清楚地解释一下你的情景。

15 个答案:

答案 0 :(得分:122)

只需这个

$ sudo apt-get install libpq-dev

答案 1 :(得分:15)

试试这个:

  1. brew install postgresql
  2. gem install pg
  3. 捆绑安装

答案 2 :(得分:14)

在Fedora / RHEL系统上,这就是诀窍:

sudo yum install libpqxx-devel

答案 3 :(得分:4)

在Mac OS X上运行如下:

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

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

答案 4 :(得分:3)

我在Amazon AMI上使用Jenkins服务器时出现此问题。

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

然后根据您需要的版本,您可以安装所需的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

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

sudo yum install postgresql94-devel

答案 5 :(得分:1)

试试这个:

sudo apt-get install libpq-dev
gem install pg 

它会有效!

答案 6 :(得分:1)

在Mac上确保您的postgres已链接。 你可以通过

来做到这一点
brew link --overwrite postgresql

这解决了我的问题。

答案 7 :(得分:1)

对于Amazon Linux:

sudo yum install postgresql-devel

然后再次运行命令

答案 8 :(得分:1)

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

apk add postgresql-dev

答案 9 :(得分:0)

这对我有用:

@media only screen and (max-width: 900px) {
  #ad_1 { display: none; }
}

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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)

答案 12 :(得分:0)

  • SO: 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

GL

答案 13 :(得分:0)

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

我通过运行sudo yum search postgres | grep devel对其进行了修复,并为我的postgres安装找到了正确的软件包,该软件包为10。

然后只需运行sudo yum install postgresql10-devel,然后运行eureka!

答案 14 :(得分:0)

如果您已通过 Homebrew 在 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