2012-11-04 56 views
1

我在我的Intel iMac上运行默认Ruby安装(ruby 1.8.7(2010-01-10 patchlevel 249)[i686-darwin10])。我更新了RubyGems并安装了wxruby gem。我试图运行下面的示例程序:Ruby未找到rubygems或wx模块

#!/usr/bin/ruby 
require "rubygems" 
require "wx" 


class MyApp < Wx::App 
    def on_init 
     @frame = Wx::Frame.new(nil, -1, "The Bare Minimum") 
     @frame.show() 
    end 
end 

app = MyApp.new() 
app.main_loop() 

而且我得到以下错误:

==> wxruby-test.rb 
/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle, 9): no suitable image found. Did find: (LoadError) 
    /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require' 
    from /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wx.rb:12 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require' 
    from wxruby-test.rb:3 

如果我注释掉要求RubyGems的说法,我得到以下错误:

==> wxruby-test.rb 
wxruby-test.rb:3:in `require': no such file to load -- wx (LoadError) 
    from wxruby-test.rb:3 

我在Mac上是Ruby的新手,我确信这是一些可能与路径有关的基本错误,但大多数关于环境变量的解释都是针对有经验的用户。如果您需要其他命令的更多输出,请告诉我。我从tcsh shell运行Ruby。我确信我正在做一些基本错误的事情,但我很难过。

回答

0

如果你正在运行的Ruby 1.8.7你应该在require声明离开:

require "rubygems" 

的Ruby 1.8不知道默认的宝石,所以我们不得不告诉红宝石,要求宝石装载机。 Ruby 1.9+捆绑了它,所以我们不再需要这样做。

这与Mac(或Windows或Linux)操作系统无关,它与Ruby的默认加载路径有关。

而且,作为一个安全提示,不要混淆苹果公司安装的Ruby。他们安装它供自己使用,并用于一些播客创作工具。而且,在将来的某个时候,他们可能会想要在利用Ruby(或Python或Perl)的预期配置的系统中添加一些东西。改变(或者更糟糕的是,删除它)会让你感到困惑。所以,我建议你不要使用它,并使用rbenv或RVM在沙箱中安装Ruby,在那里你可以安全地戳,刺激和混乱。

+0

OP正在使用'require'rubygems“',它正在寻找宝石,但未能加载需求。仔细阅读问题。 –

+0

OP有几件事情在说:“如果我将'require'rubygems''注释掉......”。这就是我正在解决的问题,以及与系统的Ruby的紧密联系。为什么WX不加载是三个问题中的一个单独问题。 –

0

什么版本的OS X?如果它是狮友之一,那么你的运气不好。 wxwidgets库(以及基于它的东西,比如wxruby)仍然只有32位并基于Carbon。狮子会只有64位,而碳已被弃用。

+0

我正在运行雪豹 - 10.6.8 –

+0

顺便说一句:我使用Macruby代替时出现同样的问题。 –

+0

此外,我的硬盘驱动器搜索显示没有文件名:rubygems,rubygems.rb,wx或wx.rb –