915

Ruby on Rails 3.1 プレバージョンを使用しています。pgPostgreSQL を使用したいのですが、 gemのインストールに問題があります。次のエラーが表示されます。

$ gem install pg
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

        /home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
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=/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
    --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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out

この問題を解決するにはどうすればよいですか?

4

45 に答える 45

1468

libpq-devUbuntu では、ヘッダーがパッケージの一部であるように見えます(少なくとも次の Ubuntu バージョンでは: 11.04 (Natty Narwhal)、10.04 (Lucid Lynx)、11.10 (Oneiric Ocelot)、12.04 (Precise Pangolin)、14.04 (Trusty Tahr)) 。および18.04 (Bionic Beaver)):

...
/usr/include/postgresql/libpq-fe.h
...

libpq-devしたがって、お使いの OS に相当するものをインストールしてみてください。

  • Ubuntu/Debian システムの場合:sudo apt-get install libpq-dev
  • Red Hat Linux (RHEL) システムの場合:yum install postgresql-devel
  • Mac自作の場合:brew install postgresql
  • Mac MacPorts PostgreSQL の場合:gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • OpenSuseの場合:zypper in postgresql-devel
  • ArchLinuxの場合:pacman -S postgresql-libs
于 2011-05-18T06:41:38.540 に答える
213

macOS (以前のMac OS XおよびOS X ) では、Homebrew を使用適切なヘッダーをインストールします。

brew install postgresql

そして実行中

gem install pg

動作するはずです。

または、全体をインストールする代わりに、「警告」セクションで説明されているように、正しいとをエクスポートするpostgresqlことができますbrew install libpqPATHPKG_CONFIG_PATH

于 2013-12-09T22:30:51.960 に答える
124

も試してみgem install libpq-devましたが、次のエラーが発生しました。

Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

sudo apt-getただし、 (Ruby on Railsでの使用を避けようとしています)でのインストールが機能することがわかりました。

sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04

それから私はすることができました

gem install pg

問題なく。

于 2012-01-16T23:34:10.213 に答える
51

これを別の方法で解決できます。システムでライブラリが見つかりませんでした。したがって、PostgreSQL のメイン Web サイトのアプリを使用してインストールしました。私の場合(OS X)/Library/PostgreSQL/9.1/include/、インストールが完了すると、ファイルが見つかりました。PostgreSQL が既にインストールされている場合、システムによってはファイルが別の場所にある場合もあります。

宝石のインストールに追加のパスを追加する方法に関するこのリンクのおかげで、次のコマンドで宝石をライブラリに向けることができました。

export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg

その後、不足しているライブラリの場所がわかっているため、機能します。パスを libpq-fe.h の正しい場所に置き換えるだけです

于 2012-01-12T06:52:25.313 に答える
25

CentOS 6.4 の場合、

yum install postgresql-devel
gem install pg

うまくいきました!

于 2013-04-10T09:13:45.210 に答える
18

記録のために:

PostgresApp を使用した OS X の Ruby on Rails 4 アプリケーション (この場合は 0.17.1 バージョンが必要 - 古いプロジェクトのようなもの):

gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
于 2015-10-19T16:53:13.510 に答える
14

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

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

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

于 2014-01-08T09:36:16.547 に答える
13

私の場合、それはパッケージでしたpostgresql-server-dev-8.4(私はUbuntu 11.04(Natty Narwhal)、64ビットを使用しています)。

于 2011-07-18T18:18:51.300 に答える
10

Postgres.app を使用する Mac ユーザーの正しい答えはlibpq、そのパッケージで提供される に対してビルドすることです。たとえば、9.4 リリース (この記事の執筆時点) では、次のものが必要です。

export CONFIGURE_ARGS="with-pg-include=/Applications/Postgres.app/Contents/Versions/9.4/include"
gem install pg

これにより、pggem はインストールした PostgreSQL のバージョンと正確に同期されます。この場合、Homebrew から何かをインストールするのは無駄です。

于 2015-01-22T15:29:32.407 に答える
9

Debian ベースのディストリビューション (Ubuntu を含む) に対するより一般的な答えは次のとおりです。最初に、apt-fileルートとして実行するパッケージをインストールします。

apt-get install apt-file

これにより、ファイルを含むパッケージを検索できます。次に、使用してデータベースを更新します

apt-file update

(これは通常のユーザーとして実行できます)。次に、次を使用して不足しているヘッダーを探します。

apt-file search libpq-fe.h

私のマシンでは、これにより次のようになります。

libpq-dev: /usr/include/postgresql/libpq-fe.h
postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h

どうぞ!

于 2013-08-29T21:16:01.113 に答える
5

Mac では、次のコードを使用して解決しました。

gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
于 2016-02-04T21:00:51.080 に答える
5

私はこの答えを見つけました、そしてそれは私のために働いた唯一のものでした(Mac OS)-約2日間調査した後:

$ sudo su

$ env ARCHFLAGS="-arch x86_64" gem install pg

Building native extensions.  This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...

スタック オーバーフローの質問Can't find the PostgreSQL client library (libpq)を参照してください。

于 2014-10-20T16:21:36.630 に答える
4

最近、 Mac OS X v10.10 (Yosemite) にアップグレードしましたが、 pggem のビルドに苦労しました。

報告されたエラーは典型的なものでした:

Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... *** extconf.rb failed ***

私の解決策は、宝石を最新のものgem uninstall pgbundle update pg置き換えることでした。Yosemite のインストール後に実行brew update; brew upgradeして、以前にインストールしたパッケージの最新バージョンを取得しました。

于 2014-11-02T12:21:25.330 に答える
3

CentOSでは、libpq-dev package以下のコマンドを使用してインストールしました

yum install postgresql-devel

を実行gem install pgすると、" " と同じエラーが返されましたNo pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

以下のように宝石をインストールすると、問題が解決しました

gem install pg -- --with-pg-config=/usr/pgsql-x.x/bin/pg_config
于 2015-01-21T09:26:14.590 に答える
3

Postgresql 9.6 でこの問題が発生しました。私はそれを修正することができました:

brew upgrade postgresql@9.6
brew link postgresql@9.6 --force
gem install pg
于 2018-01-05T20:04:06.440 に答える
2

Debian 7.0、64ビット (Wheezy) では、次を実行します。

sudo apt-get install libpq-dev

libpq-dev を正常にインストールしたら、次を実行します。

bundle install
于 2014-02-19T03:30:00.893 に答える
2

の場所はlibpq-fe.h、PostgreSQL のインストール場所によって異なります (インストール方法によって異なります)。locate( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ) を使用libpq-fe.hして、マシン上のファイルを見つけます。存在する場合includeは、PostgreSQL インストールのディレクトリにあります。

$ locate libpq-fe.h
/Library/PostgreSQL/9.1/include/libpq-fe.h

binを含むディレクトリは、ディレクトリpg_configと同じディレクトリになりincludeます。エラーが示すように、 --with-pg-config オプションを使用して gem をインストールします。

$ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config"

updatedbPostgreSQLを一度も使用したことがlocateない場合、または PostgreSQL をインストールしてから更新していない場合は、実行する必要があることに注意してください。

于 2015-01-26T04:57:30.733 に答える
2

FreeBSD (9.1) では、必要なパッケージは /usr/ports/database/postgresql-server* です。これをインストールすると、"pg" の gem インストールを失敗させる必要なヘッダー ファイルもインストールされます。This answer here は解決策を見つけるのに役立ちましたが、パッケージ名の違いにより少し検索が必要でした。

これが、FreeBSD システムで「-dev」パッケージを検索するときに頭を悩ませるのを避けるのに役立つことを願っています!

于 2013-09-06T00:27:26.760 に答える
2

私は最終的にこの問題を解決しましたが、前述の方法は使用しませんでした。

を使用brew install postgresqlすると、既にインストールされているがリンクされていないことがわかります。

  1. PostgreSQLがインストールされている場所を見つけて削除し、

  2. それからbrew install postgresqlまた、

  3. brew link postgresql

  4. gem install pg

于 2016-02-15T08:24:03.123 に答える
1

「postgresql-common」パッケージをインストールすることでこれを解決しました。このパッケージは、pg_config不足していた可能性が最も高いバイナリを提供します。

于 2013-01-07T17:19:08.153 に答える
1

私は同様の問題を抱えていましたが、これで解決しました:

gem install do_postgres -- --with-pgsql-server-dir=/Applications/Postgres.app/Contents/MacOS --with-pgsql-server-include=/Applications/Postgres.app/Contents/MacOS/include/server

ソース:

https://gist.github.com/oisin/6562181

于 2014-02-07T02:27:57.640 に答える
1

AltLinuxパッケージ(私のpostgresqlx.x-devel場合postgresql9.5-devel)をインストールする必要があります:

apt-get install postgresql9.5-devel
于 2016-03-02T07:23:49.200 に答える
0

OS X およびMacPortsでは、PostgreSQL 用の-develパッケージは不要になりました。gemのインストールはpg次のように行われます。

~ > sudo port install postgresql-devel
...
Error: postgresql-devel has been replaced by postgresql91; please install that port instead
~ > gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql95/bin/pg_config

この投稿も参照してください。

于 2015-08-29T09:39:37.087 に答える
0

アンインストール(sudo apt-get purge)libpq-devと再インストールのみが私にとってはうまくいきました。

于 2014-03-23T15:30:33.383 に答える
-1

rvm 経由で Ruby を再インストールして、同じエラーを修正しました。

rvm reinstall 1.9.3
于 2012-07-29T22:24:11.760 に答える