2012-03-13 2 views
1

Я нахожусь в Mac OS, и я запускаю Snow Leopard Version 10.6.8. Я использую RVM для управления моими установками Ruby (и поэтому для использования структуры Ruby on Rails), но у меня возникают проблемы, когда я вижу некоторые результаты в журнале, в основном связанные с текущей версией, когда я получаю предупреждение/сообщение об ошибке. То есть, я ранее выполнял эти команды в окне терминала:Неисправность в понимании того, что Ruby версия «действительно»/«эффективно» работает

$ which ruby 
/<ABSOLUTE_PATH>/.rvm/rubies/ruby-1.9.2-p290/bin/ruby 

$ rvm install 1.9.3 
Installing Ruby from source to: /<ABSOLUTE_PATH>/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... 
ruby-1.9.3-p0 - #fetching 
... 
Fetching yaml-0.1.4.tar.gz to /<ABSOLUTE_PATH>/.rvm/archives 
Extracting yaml-0.1.4.tar.gz to /<ABSOLUTE_PATH>/.rvm/src 
Configuring yaml in /<ABSOLUTE_PATH>/.rvm/src/yaml-0.1.4. 
Compiling yaml in /<ABSOLUTE_PATH>/.rvm/src/yaml-0.1.4. 
Installing yaml to /<ABSOLUTE_PATH>/.rvm/usr 
ruby-1.9.3-p0 - #configuring 
ruby-1.9.3-p0 - #compiling 
ruby-1.9.3-p0 - #installing 
Removing old Rubygems files... 
Installing rubygems-1.8.10 for ruby-1.9.3-p0 ... 
Installation of rubygems completed successfully. 
ruby-1.9.3-p0 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake). 
ruby-1.9.3-p0 - #importing default gemsets (/<ABSOLUTE_PATH>/.rvm/gemsets/) 
Install of ruby-1.9.3-p0 - #complete 

$ which ruby 
/<ABSOLUTE_PATH>/.rvm/rubies/ruby-1.9.2-p290/bin/ruby 

$ rvm use --default 1.9.3 
Using /<ABSOLUTE_PATH>/.rvm/gems/ruby-1.9.3-p0 

$ which ruby 
/<ABSOLUTE_PATH>/.rvm/rubies/ruby-1.9.3-p0/bin/ruby 

До сих пор, похоже, все в порядке.

Однако, когда я получаю ошибку, как в this question related to the DelayedJob gem, я вижу в журнале, что система использует еще Ruby 1.9.2-p290:

# Note the 'ruby-1.9.2-p290' 
undefined method `send_register_email\' for #<Syck::DomainType:0x00000108e2f870>\n/<ABSOLUTE_PATH>/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-3.0.1/lib/delayed/performable_mailer.rb:6:in 
... 

Что не так? Как я могу решить проблему?

+0

Как вы начали работу 'script/delayed_job' или' rake jobs: work' обработчика замедленных заданий? – sarnold

+0

@sarnold - Я работаю в режиме разработки, поэтому я использую «rake jobs: work». – Backo

+0

Вы сделали это из той же оболочки, что и вы использовали 'rvm use --default 1.9.3'? Или это из другой оболочки? Что думает эта другая оболочка по умолчанию? – sarnold

ответ

1

как @sarnold предлагает вам перезапустить любые длительные процессы, такие как демоны.

Другое дело, что если он работает на вкладке cron, убедитесь, что задача cron работает как правильный пользователь. Если вы настроили RVM для пользователя, а не для системы, то root или любой другой пользователь, чем вы не настроили RVM для, будет использовать системный рубин.

Вы тщательно пропущено из «»

Примечание это легко может произойти с

sudo rake some:task # that has to do something as root like open a low port or move a file 

этого будет работать как корень и не делать правильный RVM сорсинг. Чтобы исправить это, есть

rvmsudo rake some:task 
Смежные вопросы