web-dev-qa-db-ja.com

PhusionPassengerとSnowLeopard

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

パッセンジャーgemを再インストールし、インストーラースクリプトを実行し、指示に従ってApacheconfファイルを更新しました。

また、運が悪かったので、env ARCHFLAGS = "-Archx86_64"を使用してgemを再インストールしようとしました。

2
magnushjelm

私は同じ問題を抱えていました-修正はRubyを32ビットではなく64ビットに再コンパイルすることでした。

Rubyが次のように使用しているアーキテクチャを確認できます:

> file `which Ruby`
/usr/local/bin/Ruby: Mach-O 64-bit executable x86_64

X86_64ではなくi386が報告されている場合は、おそらく同じ問題が発生しています。

(私のものを再コンパイルする前は「Mach-O実行可能i386」でした)

この後、ネイティブ拡張機能を使用してgemを再コンパイル/再インストールする必要があるため、ちょっと面倒です。私はまだこれを行っていませんが、Sudo gem pristine --allを使用して「簡単に」実行できる可能性があることをどこかで見ました。

0
user18991