rails installpg-'libpq-fe.hヘッダーが見つかりません


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

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

お願い助けて。ありがとうございました。

このテキストでごめんなさい。あなたの投稿には、コードセクションを説明するためのコンテキストがあまりありません。シナリオをより明確に説明してください。


1
PostgreSQLをどのようにインストールしましたか?
ステファン


回答:


190

これを作るだけ

$ sudo apt-get install libpq-dev

Ubuntu 14.04でそれを実行しようとしましたが、次のようになりました: "libpq-dev:Depends:libpq5(= 9.3.4-1)but 9.3.10-0ubuntu0.14.04 is to install"
Michael Lafayette

しかし、libpq5をインストールしようとすると、「libpq5はすでに最新バージョンです」と表示されます。
Michael Lafayette

PostgreSQLのバージョンは次のとおりです。psql--version:psql(PostgreSQL)9.3.10。x86_64-unknown-linux-gnu上のPostgreSQL9.3.10、gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2、64ビットでコンパイル
Michael Lafayette

1
鮮やかさ!私がコンパイルしていたアプリケーションでも、他の誰かが同じパスに遭遇した場合libpq-fe.hに備えて--with-cflags=-I/usr/include/postgresql、パスを明示的に指定する必要がありました。
ベンジョンソン

libpq-devの意味を疑問に思っている方のために:これには、PostgreSQL_のサードパーティアプリケーションを構築するために必要な_バイナリとヘッダーの最小限のセットが含まれていますPostgreSQL
IronMan007 2017年

75

これは、pg gemをインストールしようとすると、「libpq-fe.hヘッダーが見つかりません」で回答されます。

環境に応じて:

  • マック: brew install postgresql
  • Ubuntusudo apt-get install libpq-dev
  • RHELyum install postgresql-devel

その後、gem install pg再度実行します


1
Ubuntu 14.04でそれを実行しようとしましたが、次のようになりました: "libpq-dev:Depends:libpq5(= 9.3.4-1)but 9.3.10-0ubuntu0.14.04 is to install"
Michael Lafayette

しかし、libpq5をインストールしようとすると、「libpq5はすでに最新バージョンです」と表示されます。PostgreSQLについても同じ
Michael Lafayette

PostgreSQLのバージョンは次のとおりです。psql--version:psql(PostgreSQL)9.3.10。x86_64-unknown-linux-gnu上のPostgreSQL9.3.10、gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2、64ビットでコンパイル
Michael Lafayette

ちょっとマイケル、私はUbuntuに精通していないのであなたの質問に答えることができるかわかりませんが、ここでマイケルデュラントの答えをチェックしたいかもしれません:stackoverflow.com/a/8887801/2484523
Phil

Red HatEL7に取り組んだ。DBD :: PgのPerlインストール中にヘッダーファイルが欠落していました。
マーカス

18

これを試して:

  1. brew install postgresql
  2. gem install pg
  3. バンドルインストール

15

Fedora / RHELシステムでは、これでうまくいきました。

sudo yum install libpqxx-devel

理由:パッケージlibpqxx-develはありません。
itsji10dra 2016

1
yum list libpq *の後にyuminstall libpqxx-devel.x86_64
erichfw

10
  • 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


5

Mac OS Xでは、次のように実行します。

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

***/path/to/pg_config*** pg_configへのパスです


5

Amazon Linux(AWS)の場合:

sudo yum install postgresql-devel

その後、コマンドを再度実行します


4

AmazonAMIの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

1
ああ!優秀な。特定のバージョン(9.6)は、AMIの障害でもありました。
DaveGauer



2

Macでは、postgresがリンクされていることを確認してください。あなたはそれを行うことができます

brew link --overwrite postgresql

これで問題が解決しました。


2

これは、centos7ディストリビューションにアプリをデプロイしているときにcapistranoを使用して発生していました。どうやらgemは、適切な開発パッケージをインストールすることで解決できるいくつかのヘッダーファイルを必要としています。

実行して修正sudo yum search postgres | grep develし、postgresのインストールに適したパッケージである10を見つけました。

次に、実行するだけでsudo yum install postgresql10-devel、ユーレカ!


あなたは私の日を救った!正しい開発バージョンを見つけることは本当に役に立ちます!
HoangLM

1

私はUbuntu-16を使用しています。そして、ここに示す方法を使用します:https//www.postgresql.org/download/linux/ubuntu/ to install 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/ そしてついに問題を解決しました。


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)


0

これは私のために働いた:

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.