gpt4 book ai didi

ruby-on-rails - 安装 pg gem 失败, "mkmf.rb can' t 找不到 ruby​​ 的头文件”(Mac OSX 10.6.5)

转载 作者:数据小太阳 更新时间:2023-10-29 06:29:53 27 4
gpt4 key购买 nike

我刚刚升级到 Rails 3,在使用 MacPorts、gems 和数据库时遇到了一些麻烦,需要解决。我扔掉了所有的 gem 并重新安装它们。除了 pg gem 的要求外,一切似乎都正常。

在为 PostgreSQL 创建一个新的 Rails 3 项目后,服务器无法启动,提示缺少 pg gem。在执行 bundle install 时,它运行了一段时间,当然,在 pg gem 上失败了。

Installing pg (0.10.0) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.10.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.10.0/ext/gem_make.out
from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each'
from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `build_extensions'
from /Library/Ruby/Site/1.8/rubygems/installer.rb:198:in `install'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/source.rb:95:in `install'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:55:in `run'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:44:in `run'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in `install'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `send'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/bin/bundle:13
from /usr/bin/bundle:19:in `load'
from /usr/bin/bundle:19

我在论坛和博客上发现的最常见的建议是(重新)安装 XCode 开发人员工具。它们已经存在,但我还是重新安装了它们,结果没有比上面更好的了。

which ruby​​ 表示 /usr/bin/rubyruby -v 表示 ruby 1.8.7 (2009-06 -12 补丁级别 174) [universal-darwin10.0],如果那里有任何线索的话。

欢迎指点。任何有助于解决此问题的缺失信息,我都会很乐意并及时提供!


我下载了 XCode,因为据说 DVD 版本已损坏,但有一段时间情况有所好转。 bundle install 开始谈论“archflags”,所以我做到了:

sudo env ARCHFLAGS="-arch i386" bundle install

一切似乎都很顺利,直到启动 Rails 时吐了一句:

/Library/Ruby/Gems/1.8/gems/pg-0.10.0/lib/pg_ext.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/pg-0.10.0/lib/pg_ext.bundle, 9): no suitable image found.  Did find: (LoadError)
/Library/Ruby/Gems/1.8/gems/pg-0.10.0/lib/pg_ext.bundle: mach-o, but wrong architecture - /Library/Ruby/Gems/1.8/gems/pg-0.10.0/lib/pg_ext.bundle

为了解决任何问题,我尝试了将 archflags 设置为 -arch x86_64bundle install,但并不顺利:

*** Your PostgreSQL installation doesn't seem to have an architecture in common with the running ruby interpreter ([] vs. ["x86_64"])
I'll continue anyway, but if it fails, try setting ARCHFLAGS.
[...]
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***

我现在必须通过一些标志提供 libpq 的路径吗?还是我完全出去吃午饭了?

最佳答案

我尝试在 CentOS 6.3 上通过 gem 安装 rails 时遇到此错误。

谷歌搜索了一下后,我找到了一个快速解决方法:安装 ruby​​-devel 包。

sudo yum install ruby-devel

在那之后,一切正常。

关于ruby-on-rails - 安装 pg gem 失败, "mkmf.rb can' t 找不到 ruby​​ 的头文件”(Mac OSX 10.6.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com