3

自从我从 Lion 升级到 Mountain Lion 以来,我一直在尝试恢复我的 Rails 开发环境。问题是专门安装 pg-0.14.0 (postgresql) gem。

我已经尝试过这篇文章的说明,但没有运气。我试过用 Homebrew 卸载 Postgres,然后重新安装它。没有任何工作。如果我尝试安装这个 gem,我会收到这个错误:

Building native extensions.  This could take a while...
ERROR:  Error installing pg: 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/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.

我在哪里可以找到mkmf.log?谁能给我一个关于如何再次安装 pg gem 的建议?

更新 我能够使用以下命令找到我的 mkmf.log 文件:

查找/-name mkmf.log 2>/dev/null

有几个失败的 xcrun 调用,如下所示:

have_library: 检查 -llibpq 中的 PQconnectdb()... -------------------- 否

“xcrun cc -o conftest -I.-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I.-D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr /local/Cellar/postgresql/9.1.4/include -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L.-L/System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -arch i386 -arch x86_64 -L/usr/local/Cellar/postgresql/9.1.4/lib -lruby -llibpq -lpthread -ldl - lobjc " ld: 找不到 -llibpq clang 的库: 错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)

为什么我在运行 xcrun 时会出错?有人见过这个吗?

谢谢!

4

4 回答 4

2

错误在那里说:

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)

它找不到 libpq,或者尝试编译测试程序并链接到它的测试失败。因为它发现/usr/local/bin/pg_config它应该知道 Pg 库和头文件在哪里,所以问题可能是测试编译中的错误。

要了解更多信息,您需要检查mkmf.log. 跑

find . -name mkmf.log

从您运行 gem install 命令的目录中,这可能会找到它。使用其内容更新您的帖子。

于 2012-08-08T04:06:25.083 回答
2

我终于解决了这个问题。我使用RVM卸载 ruby​​ 并重新安装 ruby​​ 版本 1.9.3。这使我可以毫无问题地运行“捆绑安装”。我检查了所有已加载的宝石(宝石列表)。但是,此时我的 rails 应用程序无法找到 postgres 套接字文件。同样的问题在这里详细描述。我没有找到 postgresql.conf 文件、更改其权限并对其进行编辑,而是卸载了我当前版本的 Postgres 并从 PostGres 下载了最新的 One-Click 安装程序。当我再次运行安装程序时,它检测到另一个 PostGres 安装并更新了它。这为我更新了配置,一切都好起来了。

我希望这可能有助于其他一些糟糕的 Rails 开发人员升级到 Mountain Lion :)

于 2012-08-09T15:44:55.263 回答
0

我也为此苦苦挣扎了几个小时,但在我的设置中找不到任何工作。

我最终使用了postgres.app。这是 Heroku 人员发布的 Postgres 的打包版本。他们说这是“在 Mac 上运行 postgreSQL 的最简单方法”。根据我的经验,这是真的!

只需将其放入您的应用程序文件夹中,您就完成了!(我只需要重新启动以释放端口 5432)。

旁注:他们还发布了一个名为Induction的应用程序来管理和查询您的数据库,但目前它在 Mountain Lion 中无法使用。

于 2012-08-08T06:33:53.203 回答
0

如果您有 Mountain Lion 和 XCODE 4.4.1,则没有命令工具,请从此处下载https://developer.apple.com/downloads/index.action

于 2012-08-11T01:38:20.547 回答