首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标准OS发行版中的Ruby和MacPorts有什么不同?

标准OS发行版中的Ruby和MacPorts有什么不同?
EN

Stack Overflow用户
提问于 2010-07-25 16:36:38
回答 2查看 652关注 0票数 0

我已经问过关于更新Google SketchUp中Ruby版本的SuperUser问题了。在标准OS发行版提供的Ruby与RVM或MacPorts安装的Ruby之间似乎存在一些不同之处。当我尝试使用RVM或MacPorts‘Ruby1.9.1时,我会得到以下错误消息

代码语言:javascript
运行
复制
Exception Type:  EXC_BREAKPOINT (SIGTRAP)

Dyld Error Message:
  Library not loaded: @executable_path/../Frameworks/Ruby.framework/Versions/A/Ruby
  Referenced from: /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/SketchUp
  Reason: no suitable image found.  Did find:
    /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: mach-o, but wrong architecture
    /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: mach-o, but wrong architecture
    /usr/lib/Ruby: not a file

Model: MacBookPro7,1, BootROM MBP71.0039.B05, 2 processors, Intel Core 2 Duo, 2.4 GHz, 4 GB, SMC 1.62f5

但是它适用于来自/System/Library/Frameworks/Ruby.framework/的Ruby1.8.7

UPDATE1

因为它是亚历克斯解释,所以我需要用i386架构编译Ruby。我们可以对MacPorts和RVM这样做,但是由于各种错误,没有一个方法对我有效。

  1. 如何防止i386建立在雪豹大金刚上?
  2. 内部配置文件
  3. 达尔文操作系统

因此,我决定从源代码编译Ruby 1.9.2-rc2

代码语言:javascript
运行
复制
$ ARCHFLAGS="-arch i386"  CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure  --with-arch=i386
$ make && sudo make install

并将相应的文件复制到SketchUp

代码语言:javascript
运行
复制
$ cd /Applications/Google\ SketchUp\ 7/SketchUp.app/Contents/Frameworks/Ruby.framework/Versions/A/
$ rm -r Headers Ruby
$ cp /usr/local/bin/ruby Ruby
$ mkdir Headers
$ cp /usr/local/include/ruby-1.9.1/i386-darwin10.4.0/ruby/config.h Headers/
$ cp /usr/local/include/ruby-1.9.1/ruby.h Headers/
$ cp -r /usr/local/include/ruby-1.9.1/ruby/* Headers/
$ ls Headers
backward/   defines.h   dl.h        intern.h    missing.h   re.h        ruby.h      util.h      vm.h
config.h    digest.h    encoding.h  io.h        oniguruma.h regex.h     st.h        version.h

这一次我收到了以下消息

代码语言:javascript
运行
复制
Dyld Error Message:
  Library not loaded: @executable_path/../Frameworks/Ruby.framework/Versions/A/Ruby
  Referenced from: /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/SketchUp
  Reason: no suitable image found.  Did find:
    /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map
    /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map
    /usr/local/lib/Ruby: not a file
    /usr/lib/Ruby: not a file
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-25 17:14:37

看起来您在sketchup目录中有两种体系结构的Ruby库版本(我猜可能是32位英特尔和PPC ),并且正在尝试使用由第三种不同体系结构构建的Ruby二进制(我猜可能是64位英特尔)。您可以在arch shell提示符下使用Terminal.App命令进行检查。

如果这确实是一个问题,你也许可以尝试建立一个1.9红宝石从来源,针对32位的英特尔CPU.?(我不知道为32位英特尔CPU构建的mac预装红宝石1.9 -当然,也有一些我不知道的!)

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 02:03:59

这个问题解决了吗?要回答标题中的一般性问题,这就是我点击以下内容的原因:

System (我认为是1.8.7)是预加载的,不会被MacPorts或RVM覆盖。默认情况下,MacPorts写到另一个目录,终端开始解析新的安装,而系统Ruby则没有使用。RVM创建自己的Ruby虚拟安装,并可以使用$ rvm use在这些安装和system之间切换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3330041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档