宝石宝石和红宝石之间的架构不匹配?

时间:2010-09-07 14:50:01

标签: ruby rubygems

我通过gem install成功安装了yajl-ruby ruby​​gem,但尝试使用它会引发此错误:

/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”,我尝试通过32位/ 64位强制安装yajl-ruby架构做“sudo env ARCHFLAGS =” - arch x86_64“gem install yajl-ruby”和“ARCHFLAGS =” - arch i386“。

想到我在接近作者之前首先询问,以确保这不是我的设置问题。

1 个答案:

答案 0 :(得分:0)

我有类似的问题。它发生在从Leopard(32位)升级到Snow Leopard(64位)之后。为我解决的是重新编译和安装Ruby。

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