捆绑失败 - 无法找到PostgreSQL客户端库(libpq)

时间:2014-09-02 18:29:34

标签: ruby postgresql bundle

我想我已经尝试了有关此问题的所有建议。仍然不适合我。

当我尝试捆绑...

$ 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

这也不起作用。

我不确定此时还有什么可以尝试的。 谢谢你的帮助。

9 个答案:

答案 0 :(得分:99)

我的解决方案最终在此

ARCHFLAGS="-arch x86_64" bundle install

答案 1 :(得分:43)

基于此post's answer并且它对我有用(Yosemite OSX 10.10),您可以尝试以下方法:

$ sudo su

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

您不必从自制程序重新安装pg。

答案 2 :(得分:12)

sudo ARCHFLAGS="-arch x86_64" gem install pg
为我提供诀窍...感谢Jakob @ github提供的一个主题提示

我的系统:OSX 10.9.4,Ruby 2.0.0,本地(非自制)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

答案 3 :(得分:2)

我使用home-brew卸载了postgresql(之前我用它来安装postgresql)

我安装了Postgres.app并更新了我的PATH

然后我必须停止当前运行的postgresql db

然后我能够启动Postgres.app,它从端口5432开始

然后我不得不重启我的终端

然后我能够运行bundle并且它有效。

答案 4 :(得分:1)

为了便于管理和升级等,我使用了我的Mac上的{PostgreSQL Application以及以下的gem安装(与上面的相同)。

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

我对此方法没有任何问题(相对于自定义安装或通过Homebrew,我遇到了一些问题)。

答案 5 :(得分:1)

请确保您的系统上安装了“libpq-dev”软件包

所以尝试安装libpq-dev:

   for Ubuntu systems: sudo apt-get install libpq-dev
   on RHEL systems: yum install postgresql-devel
   for Mac: brew install postgresql

然后安装pg gem

   $ gem install pg -v '0.17.1'
   $ bundle

答案 6 :(得分:1)

在我的特定实例中,我试图在我的第一个heroku应用程序上运行bundle install。我做了所有@boobooninja列出的项目(当然路径略有不同)。最终为我工作的是两个答案的组合。我需要

$ sudo su

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

通过添加-v 0.17.1并指定heroku所需的版本,我可以完成我的捆绑并继续。

答案 7 :(得分:0)

如果您仍然希望能够将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。

答案 8 :(得分:0)

对我来说,诀窍是重新链接Postgres 9.3.0

brew link postgresql