RVM, кажется, смешивает гемы и двоичные файлы между версиями ruby - PullRequest
0 голосов
/ 08 ноября 2010

Я использую RVM и имею несколько устаревших проектов, в которых я использую Ruby 1.8.7, rails 2.3.x, rspec 1.3.0 и rspec-rails 1.3.2.Но после установки Ruby 1.9.2 и некоторых гемов rvm путает пути самоцветов для 1.9.2 и моего набора гемов 1.8.7:

Когда я запускаю свои спецификации с помощью rake, я получаю следующую ошибку:

"\"/home/vermelho/.rvm/gems/ruby-1.8.7-p302@rails2/gems/paperclip-2.3.3/data/paperclip\""
config.load_paths is deprecated and removed in Rails 3, please use autoload_paths instead
config.load_paths= is deprecated and removed in Rails 3, please use autoload_paths= instead
Exception encountered: #<OptionParser::InvalidOption: --loadby>
backtrace:
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/option_parser.rb:18:in `parse!'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/option_parser.rb:4:in `parse!'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration_options.rb:64:in `parse_command_line_options'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration_options.rb:46:in `parse_options'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:7:in `initialize'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/monkey/spork/test_framework/rspec.rb:4:in `new'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/monkey/spork/test_framework/rspec.rb:4:in `run_tests'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/run_strategy/forking.rb:13:in `block in run'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/forker.rb:21:in `block in initialize'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/forker.rb:18:in `fork'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/forker.rb:18:in `initialize'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/run_strategy/forking.rb:9:in `new'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/run_strategy/forking.rb:9:in `run'
/home/vermelho/.rvm/gems/ruby-1.9.2-p0/gems/spork-0.8.4/lib/spork/server.rb:47:in `run'
/home/vermelho/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/drb/drb.rb:1558:in `perform_without_block'
/home/vermelho/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/drb/drb.rb:1518:in `perform'
/home/vermelho/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/drb/drb.rb:1592:in `block (2 levels) in main_loop'
/home/vermelho/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/drb/drb.rb:1588:in `loop'
/home/vermelho/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/drb/drb.rb:1588:in `block in main_loop'

В наборе гемов, которым я сейчас пользуюсь, rspec 2 не установлен, и моя текущая установка ruby ​​и гемсет не должны ничего знать о гемах из другой установки ruby, верно?

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

Я просто столкнулся с той же проблемой. Ответ в том, что spork работает с другой версией ruby, вероятно, для другого приложения ruby. Rspec пытается подключиться к spork при использовании параметра --drb. Spork использует версию rspec, которую он уже загрузил. Простое решение, остановите другой процесс spork, прежде чем пытаться запустить rspec.

Я не верю, что эта проблема имеет какое-либо отношение к RVM.

1 голос
/ 08 ноября 2010

Я никогда не видел, чтобы RVM делал это, поэтому я подозреваю, что что-то существовало до того, как RVM был загружен в систему. Был ли Ruby 1.8.7 установленной системой или некоторые из гемов были загружены за пределы RVM? Если это так, то RVM не может действительно многое сделать для исправления ранее существовавших конфигураций.

Единственное, о чем я могу думать, это то, что Rails захватил пути к драгоценным камням, а затем вы установили RVM. Я установил Rails под RVM, затем преобразовал в Rails 3 и обновил свои проекты, установив все под контролем RVM, и не увидел, кто вы.

Возможно, вам потребуется обратиться к Уэйну Сегину (wayneeseguin в #rvm на irc.freenode.net) за помощью. Я почти уверен, что он спросит, на какой версии RVM вы работаете, так что готовый вывод rvm -v готов. Текущий оборот на данный момент:

rvm -v
rvm 1.0.21 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/] 
...