Ошибка сегментации в rvm'd Ruby на Mac при запуске RSpec - PullRequest
1 голос
/ 24 июля 2010

Я что-то разрабатывал в универе, сохранил в свой 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'

Где написано "запустить 1.8.7"?!?

1 Ответ

0 голосов
/ 29 июня 2011

Вероятно, что RVM портит ваши драгоценные камни и рубины.Я бы порекомендовал провести тестирование на очищенной установке RVM (с установленным только 1.9).

Является ли /Users/amadan/.rvm/rubies/ruby-1.9.2-rc1/bin/ruby действительно ruby ​​1.9.2?

Другим способом тестирования будет явный запуск ruby spec так что вы уверены, что это действительно 1.9.2, который называется.

В заключение следует сказать, что ошибки происходят в ruby ​​(особенно в 1.8), и их иногда можно избежать путем небольшой реорганизации кода ruby.Удачи!

...