1

私は大学で何かを開発していて、家で続けるつもりで 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 があることに気付きました...どうやってそこにたどり着いたのですか? 仕様ファイルの上部には次のように書かれています。

$ 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'

「run 1.8.7」ってどこに書いてあるの?!?

4

1 に答える 1

0

RVM が gem と ruby​​ を台無しにしている可能性があります。クリーンアップされた RVM インストール (1.9 のみがインストールされている) でテストすることをお勧めします。

本当に/Users/amadan/.rvm/rubies/ruby-1.9.2-rc1/bin/rubyRuby 1.9.2 ですか?

テストする他の方法は、明示的に実行ruby specすることです。これにより、これが実際に呼び出される 1.9.2 であることを確認できます。

結論として、Segfaults は ruby​​ (特に 1.8) で発生し、ruby コードを少し再編成することで回避される場合があります。幸運を !

于 2011-06-28T21:07:32.377 に答える