web-dev-qa-db-ja.com

バンドルの失敗-PostgreSQLクライアントライブラリ(libpq)が見つかりません

この問題に関して私が見つけたすべての提案を試したと思います。まだ私のために働いていません。

バンドルしようとすると...

$ bundle
...

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby
    --with-pg
    --without-pg
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in
...
An error occurred while installing pg (0.17.1), and Bundler cannot
continue.
Make sure that `gem install pg -v '0.17.1'` succeeds before
bundling.

前のコードからの出力...

$ which bundle
/Users/Loren/.rvm/gems/Ruby-2.1.1@global/bin/bundle

$ which gem
/Users/Loren/.rvm/rubies/Ruby-2.1.1/bin/gem

$ which psql
/usr/local/bin/psql

Homebrewを使用してpostgresqlをアンインストールして再インストールしようとしましたが、助けにはなりませんでした。

私は試した...

ARCHFLAGS="-Arch x86_64" gem install pg

それは正常に完了しますが、bundleを実行しても同じエラーが発生します。

私は試した ...

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

それはうまくいきませんでした。

私は試した ...

gem install pg -v '0.17.1' -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.2/bin/pg_config

それもうまくいきませんでした。

この時点で他に何を試すべきかはわかりません。助けてくれてありがとう。

32
halorium

私の解決策はこれで終わりました

ARCHFLAGS="-Arch x86_64" bundle install
99
Josh Dean

これに基づいて 投稿の答え と私のために働いた(Yosemite OSX 10.10)、あなたは次を試すことができます:

$ Sudo su

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

Homebrewからpgを再インストールする必要はありません。

43
fruqi

Sudo ARCHFLAGS="-Arch x86_64" gem install pg
私のためにトリックをしました... Jakob @ githubによって与えられたスレッドのヒントをありがとう

私のシステム:OSX 10.9.4、Ruby 2.0.0、local(non-homebrew)Postgresql 9.3.5

Building native extensions.  This could take a while...
Successfully installed pg-0.17.1
invalid options: -f fivefish
(invalid options are ignored)
Parsing documentation for pg-0.17.1
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/pg_ext.bundle, skipping
Installing ri documentation for pg-0.17.1
1 gem installed
12
susan

Home-brewを使用してpostgresqlをアンインストールしました(以前にpostgresqlのインストールに使用していた)

Postgres.appをインストールし、これによりPATHが更新されました

その後、現在実行中のpostgresql dbを停止する必要がありました

その後、Postgres.appを起動でき、ポート5432で起動しました

その後、端末を再起動する必要がありました

その後、私はバンドルを実行することができ、それは機能しました。

2
halorium

私の特定のインスタンスでは、最初のherokuアプリでbundle installを実行しようとしました。 @boobooninjaにリストされているすべてのアイテムを実行しました(もちろん、パスが少し異なります)。最終的に私のために働いたのは、2つの答えの組み合わせでした。する必要がありました

$ Sudo su

$ env ARCHFLAGS="-Arch x86_64" gem install pg -v '0.17.1' 

-v 0.17.1を追加し、herokuに必要なバージョンを指定することで、バンドルを完了して続行することができました。

1
Tek

管理やアップグレードなどを簡単にするために、次のgemのインストール(上記と同じ)でMacで( PostgreSQL Application を使用しました。

gem install pg -- --with-pg-config=/Applications/Postgres__version__.app/Contents/MacOS/bin/pg_config

私はこのアプローチに問題はありませんでした(カスタムインストールまたはHomebrew経由で問題が発生しました)。

1
craig.kaminsky

gem 'pg'をgemfileに追加してbundle installを使用したいが、PostgreSQLとlibpq-devがインストールされていることがわかっている場合(OS XにはPostgreSQLが付属しているので両方ともインストールする必要があります) $PATHを見つける場所をpg_configに伝えるだけです。これを試して:

$ ln -s /Library/PostgreSQL/9.1/bin/pg_config /usr/local/bin/pg_config

9.1をインストールしたPostgreSQLバージョンに置き換えてください。リンクを作成している場所が$PATHのどこにあるかを確認してください。それが完了したら、bundle installを実行してpg gemをインストールします。

0
Gray Kemmey

私にとって、トリックはPostgres 9.3.0を再リンクすることでした

brew link postgresql
0
futbolpal