我刚刚安装了 Snow Leopard,现在尝试访问在 Passenger 下运行的站点时出现以下错误:
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/phusion_passenger/native_support.bundle: dlopen(/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/phusion_passenger/native_support.bundle, 9): no suitable image found. Did find: (LoadError)
/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/phusion_passenger/native_support.bundle: mach-o, but wrong architecture - /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/phusion_passenger/native_support.bundle
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/phusion_passenger/utils.rb:35
from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/bin/passenger-spawn-server:53:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/bin/passenger-spawn-server:53
我已经重新安装了 Passenger gem,并运行了安装程序脚本并根据说明更新了 apache conf 文件。
我也尝试使用 env ARCHFLAGS="-arch x86_64" 重新安装 gem,但没有成功
答案1
我遇到了同样的问题 - 解决方法是将 ruby 重新编译为 64 位而不是 32 位。
你可以检查你的 ruby 使用的是什么架构,如下所示:
> file `which ruby`
/usr/local/bin/ruby: Mach-O 64-bit executable x86_64
如果它报告 i386 而不是 x86_64 - 那么您可能遇到了同样的问题。
(重新编译之前我的是“Mach-O executable i386”)
这有点麻烦,因为在此之后,您需要重新编译/重新安装任何带有本机扩展的 gem。我还没有这样做,但我看到某个地方,您可以使用以下方法“轻松”完成此操作sudo gem pristine --all