更新到 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 来自extconf.rb的
try_link0' from /Users/XXX/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:476:in
try_link':39:在`'
我猜这个问题与 Xcode开发者工具有关。我将Xcode更新到最新版本,但这并没有解决问题。你知道怎么解决吗?
答案 0 :(得分:22)
你说这个问题与Xcode开发者工具有关。确保安装所有开发人员工具并不是一个坏主意(而不是像上一个答案中提到的那样单独安装gcc):
对于其他任何人在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的当前发行版本的一个问题。回到以前的版本将为您解决:
gem uninstall pg
gem install pg
*感谢comment上jhiro009的this thread指示我在问题的最后一个Postgres应用程序部分的正确方向,尽管他提到的9.2.4.3版本不适用于我
答案 1 :(得分:19)
使用homebrew为我修复此问题:
gem uninstall pg
brew install apple-gcc42
gem install pg
编辑:我也手动安装了“devtools”
xcode-select --install
答案 2 :(得分:8)
在OS X Mavericks上
sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2
gem uninstall pg; gem install pg;
适用于自制的Postgresql(9.3.1)安装和Apple Command Line Tools安装(第0.17.0页)。
答案 3 :(得分:3)
之前的解决方案都不适用于我(我刚刚升级到Mavericks并更新了XCode)。相反,我安装了Postgress.app。并打电话给
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
答案 4 :(得分:3)
这些解决方案都不适用于我,我也不想使用MacPorts。尝试下载Postgres App并将其放入Application目录。
然后,指定新下载的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/'
答案 5 :(得分:2)
如果您只是想快速修复,请将以下内容添加到您的database.yml文件中:
host: localhost
我遇到了确切的问题,添加了该行,现在一切都很顺利。
答案 6 :(得分:0)
我很幸运地听到New-Bamboo的那些人的这篇文章:
3 Quick Tips for Coding with OS X 10.9 Mavericks
安装xcode dev工具后,第三步将所有内容排序:
brew tap homebrew/versions && brew install apple-gcc42
brew link --force apple-gcc42
ln -nsf $(which gcc-4.2) /usr/bin/gcc-4.2
答案 7 :(得分:-1)
我第一次尝试安装pg时出现此问题。通过各种试验和错误,我发现了一些有效的方法。值得庆幸的是,当小牛队打破一切时,我的笔记也奏效了。
希望这会有所帮助:
不要做任何酿造。
下载enterpriseDB一键安装程序,安装并运行。 如果它不起作用,请通过命令行(无人参与模式)运行它,它将更改内存设置。重新启动,再次运行。
使用您提供的密码为用户调用postgres。还安装了pgadmin III。
在app目录中运行:
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。
psql [database_name]#检查你的数据库。或者使用pgadmin III