【问题标题】:Architecture mismatch between a ruby gem and ruby?红宝石和红宝石之间的架构不匹配?
【发布时间】:2010-09-22 16:39:50
【问题描述】:

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

我想在联系作者之前先询问一下 SO,以确保这不是我的设置问题。

【问题讨论】:

    标签: ruby rubygems


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 是的,我尝试这样做(解决了一些问题),但有些宝石仍然无法工作。或许,第一次安装时存在未清理/覆盖的文件?
    • 在官方 Rails 博客上,他们有关于如何更新所有 gem 的说明。也许你应该试试。我先更新了所有 Gems,然后重建了 Ruby,但我认为顺序没有任何意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多