20

更新到OS X 10.9 Mavericks后,我尝试启动 Rails 3 应用程序,但与 PG 数据库的连接无法正常工作。检查 PGAdmin III,数据库仍然存在并且工作正常。所以我尝试重新安装 pg gem:

gem uninstall pg
gem install pg

但是最后一个命令没有成功,并给出以下错误:

构建原生扩展。这可能需要一段时间... 错误:安装 pg 时出错:

错误:无法构建 gem 原生扩展。

    /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb checking for pg_config... yes Using config values from

/usr/local/bin/pg_config * extconf.rb 失败 *由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。检查 mkmf.log 文件以获取更多详细信息。您可能需要配置选项。

/Users/XXX/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': 编译器生成可执行文件失败。

(RuntimeError) 你必须先安装开发工具。来自 /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:461:in try_link0' from /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:476:in try_link' 来自 extconf.rb:39:in `'

我猜这个问题与Xcode 开发者工具有关。我将 Xcode 更新到最新版本,但这并没有解决问题。你知道如何解决吗?

4

8 回答 8

22

没错,问题与 Xcode 开发人员工具有关。确保您已安装所有开发人员工具并不是一个坏主意(而不是像上一个答案中提到的那样仅安装 gcc):

  1. 打开 Xcode
  2. 在应用程序菜单项“Xcode”中选择 Open Developer Tool > More Developer Tools...
  3. 这会将您带到一个包含大量软件的站点。继续下载并安装“Xcode 的命令行工具 (OS X Mavericks) - 2013 年 10 月下旬”。
  4. 您现在可以正确安装 gem。

对于在 Mac OS X Mavericks 上全新安装 Postgres 9.3.0 应用程序(即您没有使用自制软件安装 Postgres)来解决此问题的其他人,您可能会注意到,即使您可以构建 pg gem由于 dylib 问题而无法运行 rake:

rake aborted!
dlopen(/Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libpq.5.dylib
  Referenced from: /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle
  Reason: image not found - /Users/[USERNAME]/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/pg-0.15.1/lib/pg_ext.bundle

不幸的是,这是 Postgres 9.3.0 当前发行版的一个问题。回到以前的版本将为您修复它:

  1. 卸载 pg gem:gem uninstall pg
  2. 通过将其拖到垃圾箱并清空垃圾箱来删除您的 9.3.0 Postgres 应用程序
  3. 在此处安装 Postgres 应用程序的 9.2.2.0 版本:http: //postgres-app.s3.amazonaws.com/PostgresApp-9-2-2-0.zip
  4. 重新安装 pg gem:gem install pg

*感谢jhiro009 在此线程上的评论,尽管他提到的 9.2.4.3 版本对我不起作用,但在该问题的最后一个 Postgres 应用程序部分上为我指明了正确的方向。

于 2013-10-23T16:35:23.040 回答
19

使用自制软件为我解决了这个问题:

gem uninstall pg
brew install apple-gcc42
gem install pg

编辑:我还手动安装了“devtools”

xcode-select --install
于 2013-10-23T15:19:12.023 回答
8

在 OS X 小牛

sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2
gem uninstall pg; gem install pg;

适用于自制 Postgresql (9.3.1) 安装和 Apple 命令行工具安装 (pg 0.17.0)。

于 2013-10-24T05:04:45.987 回答
3

以前的解决方案都不适合我(我刚刚升级到 Mavericks 并更新了 XCode)。相反,我安装了Postgress.app。并打电话给

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
于 2013-11-03T10:15:44.833 回答
3

没有一个解决方案对我有用,我不想使用 MacPorts。尝试下载Postgres 应用程序并将其放入应用程序目录。

然后,指定新下载的位置,该位置pg_config位于应用程序内:

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

如果您遇到缺少标题的问题,请尝试指定include应用程序的目录:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/MacOS/include/'
于 2013-11-08T02:02:26.857 回答
2

如果您只是在寻找快速修复,请将以下内容添加到您的 database.yml 文件中:

host: localhost

我遇到了确切的问题,添加了那条线,现在一切都很好。

于 2013-10-24T12:48:52.147 回答
0

我很幸运地关注了 New-Bamboo 的人的这篇文章:

使用 OS X 10.9 Mavericks 编码的 3 个快速提示

安装好xcode开发工具后,第三步整理一切:

brew tap homebrew/versions && brew install apple-gcc42
brew link --force apple-gcc42
ln -nsf $(which gcc-4.2) /usr/bin/gcc-4.2
于 2014-02-16T15:54:05.727 回答
-1

我第一次尝试安装pg时遇到了这个问题。通过各种试验和错误,我发现了一些有效的方法。谢天谢地,当小牛队打破一切时,我的笔记也奏效了。

希望这可以帮助:

不要进行任何冲泡。

下载enterpriseDB一键安装,挂载运行。如果它不起作用,请通过命令行运行它(无人值守模式),它将更改内存设置。重新启动,再次运行。

使用您提供的密码创建一个名为 postgres 的用户。还安装 pgadmin III。

在应用程序目录中运行它:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-include=/Library/PostgreSQL/9.2/include/ --with-pg-lib=/Library/PostgreSQL/9.2 sudo env ARCHFLAGS='- arch i386' gem install pg/lib/

打开 pgadmin3 并为 rails 创建一个用户和密码,然后将其添加到 config.xml 中。

psql [database_name] # 检查你的数据库。或者使用 pgadmin III

于 2013-11-03T18:01:39.053 回答