1

当我运行 bundle 或尝试单独安装它时,我无法安装 pg gem。我得到的错误是:“无法创建 Makefile。” 我正在运行 Mountain Lion,安装了 Xcode,并安装了命令行工具。我还通过自制软件安装了 Postregsql。

我相信这个错误是因为我无法创建 makefile,它已经作为阻止我做其他事情的错误浮出水面。

我得到的完整错误如下。

此错误发生在捆绑期间。其他 gem 安装得很好,或者被标记为正在使用,然后这个错误会终止包,而installing pg (0.14.1) with native extensions

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

        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
checking for pg_config... yes
Using config values from /usr/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/1.8/usr/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
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib


Gem files will remain installed in /Users/ericavirtue/.bundler/tmp/75812/gems/pg-0.14.1 for inspection.
Results logged to /Users/ericavirtue/.bundler/tmp/75812/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.

我真的不知道在这里做什么。我已经为此工作了两天。

编辑:

因此,当试图找到实现 Christian Rapp 建议的解决方案的路径时,我发现了这个建议:sudo env ARCHFLAGS="-arch x86_64" gem install pg它可以安装 pg。不幸的是,当我尝试运行rails srake db:create:allrake db:migrate. 我将创建一个单独的问题来追踪这些问题......

4

3 回答 3

2

错误是这样的:

找不到 PostgreSQL 客户端库 (libpq)

您需要安装 PostreSQL(我建议使用Homebrew,但可能还有其他可用下载)并尝试再次安装 gem。

于 2013-02-19T18:18:49.833 回答
2

我没有在 MacOS 上使用自制软件,但它在哪里安装 libpq?MacPorts 正在使用 /opt 并且您的配置脚本对此一无所知。错误消息非常有用,只需提供类似的路径

gem install pg -- --with-libpqlib=/opt/...

可能您必须使用另一个标志来提供必要的信息

于 2013-02-19T18:20:41.043 回答
1

“找不到 PostgreSQL 客户端库 (libpq)”

这就是无法创建您的 makefile 的原因。在您的路径中找不到您的 Postgres 库,特别是 libpq。我看到你安装了 Homebrew。我不使用自制软件,所以我不知道它是否为您设置了路径。

于 2013-02-19T18:21:56.697 回答