代码之家  ›  专栏  ›  技术社区  ›  Amadan

运行rspec时rvm'd ruby on mac中的分段错误

  •  1
  • Amadan  · 技术社区  · 15 年前

    我在大学里开发了一些东西,存到我的Dropbox里,打算继续呆在家里。这是对我的问候:

    $ spec graph_spec.rb 
    /Users/amadan/.rvm/gems/ruby-1.9.2-rc1/gems/PriorityQueue-0.1.2/ext/priority_queue/CPriorityQueue.bundle: [BUG] Segmentation fault
    ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
    

    然而,

    $ `which spec` graph_spec.rb 
    ...........................................................................
    
    Finished in 0.046973 seconds
    
    75 examples, 0 failures
    

    这到底是怎么回事?

    供参考:

    $ which spec
    /Users/amadan/.rvm/gems/ruby-1.9.2-rc1/bin/spec
    

    更新:我刚注意到1.8.7…它是怎么到那里的?spec文件的顶部显示:

    $ head `which spec`
    #!/Users/amadan/.rvm/rubies/ruby-1.9.2-rc1/bin/ruby
    #
    # This file was generated by RubyGems.
    #
    # The application 'rspec' is installed as part of a gem, and
    # this file is here to facilitate running it.
    #
    
    require 'rubygems'
    

    它在哪里说“运行1.8.7”????

    1 回复  |  直到 15 年前
        1
  •  0
  •   Oct    15 年前

    很可能是RVM弄脏了你的宝石和红宝石。我建议对清理过的RVM安装进行测试(仅安装1.9)。

    /Users/amadan/.rvm/rubies/ruby-1.9.2-rc1/bin/ruby 真的是Ruby 1.9.2吗?

    另一种测试方法是明确地运行 ruby spec 所以你肯定这是1.9.2,它被称为。

    总而言之,segfaults确实发生在ruby中(尤其是1.8版),有时可以通过稍微重新组织ruby代码来避免。祝你好运!