2010-09-07 245 views
0

我安裝成功通過創業板yajl,紅寶石rubygem安裝,但嘗試使用它拋出這個錯誤:紅寶石寶石和紅寶石之間的體系結構不匹配?

/usr/local/lib/ruby/gems/1.8/gems/yajl-ruby-0.7.7/lib/yajl_ext.bundle: dlopen(/usr/local/lib/ruby/gems/1.8/gems/yajl-ruby-0.7.7/lib/yajl_ext.bundle, 9): no suitable image found. Did find: (LoadError) 
/usr/local/lib/ruby/gems/1.8/gems/yajl-ruby-0.7.7/lib/yajl_ext.bundle: mach-o, but wrong architecture - /usr/local/lib/ruby/gems/1.8/gems/yajl-ruby-0.7.7/lib/yajl_ext.bundle 

我猜這是一個架構不匹配的地方,但想不通爲什麼和如何修理它。該機器具有32位內核,並且我通過hivelogic instructions將ruby安裝到/ usr/local/src。

對ruby二進制文件運行lipo -info命令:「fat文件中的體系結構:/ usr/bin/ruby​​是:x86_64 i386 ppc7400」,我嘗試強制yajl-ruby通過32位/ 64通過執行「sudo env ARCHFLAGS =」 - arch x86_64「gem install yajl-ruby」和「ARCHFLAGS =」 - arch i386「相同。

Figured在接觸作者之前,請確保它不是我的設置問題

回答

0

我有類似的問題,它發生在從Leopard(32位)升級到Snow Leopard(64位)之後,我解決這個問題的方法是再次編譯和安裝Ruby 。

如果您在OS/X上,可以使用本指南:http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard

+0

謝謝 - 是的,我試圖這樣做(固定一些問題),但一些寶石仍然無法正常工作。也許,從第一次安裝的文件沒有被清理/覆蓋? – jeffthink 2010-09-22 19:03:42

+0

在官方的Rails博客上,他們有關於如何更新所有寶石的說明。也許你應該嘗試一下。我首先更新了所有的寶石,然後重建了Ruby,但我認爲這個訂單沒有任何意義。 – arikfr 2010-09-27 14:07:57