Snow Leopard/64位ruby gem问题?[英] Snow Leopard / 64-bit ruby gem problem?

本文是小编为大家收集整理的关于Snow Leopard/64位ruby gem问题?的处理方法,想解了Snow Leopard/64位ruby gem问题?的问题怎么解决?Snow Leopard/64位ruby gem问题?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我刚刚升级到 Snow Leopard,包括安装新的 XCode、重新编译的 Ruby 1.8 和 MySQL.我的 Rails 应用在更新后的环境中运行良好,除了一些依赖于 ImageScience/FreeImage 的图像处理功能.

我将 MacPorts 升级到 1.8,删除了所有以前安装的端口并在 1.8 中重新安装它们,我认为这会安装 64 位版本的端口,包括 FreeImage.我还使用以下命令将 image_science 和 RubyInline 重新安装为 64 位 gem:

sudo env ARCHFLAGS="-arch x86_64" gem install RubyInline image_science

现在,当我在需要图像处理的页面上运行我的应用程序时,我的日志中出现此错误:

加载 ImageScienceProcessor 时出现问题:dlopen(/myappname/config/initializers/../tmp/.ruby_inline/Inline_ImageScience_cdab.bundle, 9):找不到合适的图像.发现:/myappname/config/initializers/../tmp/.ruby_inline/Inline_ImageScience_cdab.bundle:mach-o,但架构错误 -/myappname/config/initializers/../tmp/.ruby_inline/Inline_ImageScience_cdab.bundle

有人可以帮我看看这个错误告诉我什么吗?

推荐答案

它报告它试图执行一些本机代码,这些代码的可执行格式正确,但架构错误.这可能意味着 gem 版本和正在运行的内核之间仍然存在不匹配,或者在您仍然安装旧操作系统时创建的一些临时代码仍然存在.两种可能的解决方案可能是:

  1. 备份您的应用程序,找到有问题的".ruby_inline"目录并将其删除,然后重试.
  2. 找出"RubyInline"和"image_science" gem 的安装位置(例如 gem list -d image_science)并检查它们的原生部分(通常是 gems//lib 中的那些或类似的东西,"bin"中的那些或那些带有".so"扩展名)匹配您的内核.您可以使用"文件"工具来检查文件是 32 位还是 64 位可执行文件(只需调用 file filename).

本文地址:https://www.itbaoku.cn/post/786576.html