Установка на macOS — ошибка: Scheduler::Defer может приостанавливать и возобновлять работу

Я следовал руководству Install Discourse on macOS for development. К сожалению, при запуске тестов (specs) с помощью:

bundle exec rake autospec

возникла ошибка:

Failures:

  1) Scheduler::Defer can pause and resume
     Failure/Error: @reactor&.stop
     
     ThreadError:
       killed thread
     # /Users/js/.rvm/gems/ruby-2.2.1/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:48:in `wakeup'
     # /Users/js/.rvm/gems/ruby-2.2.1/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:48:in `block in stop'
     # /Users/js/.rvm/gems/ruby-2.2.1/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:46:in `synchronize'
     # /Users/js/.rvm/gems/ruby-2.2.1/gems/message_bus-2.2.3/lib/message_bus/timer_thread.rb:46:in `stop'
     # ./lib/scheduler/defer.rb:56:in `stop!'
     # ./spec/components/scheduler/defer_spec.rb:44:in `block (2 levels) in <main>'

Finished in 9 minutes 53 seconds (files took 25.84 seconds to load)
6460 examples, 1 failure, 4 pending

Failed examples:

rspec ./spec/components/scheduler/defer_spec.rb:67 # Scheduler::Defer can pause and resume

Сначала у меня возникли некоторые проблемы с установкой зависимостей при запуске скрипта установки из руководства, но, думаю, сейчас они все решены.

Как можно исправить эту проблему?

Спасибо!

Цель локальной установки
На всякий случай, если это важно: я пытаюсь выполнить миграцию из Google Groups на размещённую версию Discourse, используя это руководство. Идея состоит в том, чтобы настроить локальную версию, выполнить миграцию локально, а затем загрузить резервную копию на размещённую версию, так как у меня нет прав root на размещённой версии.

В этом руководстве предполагается, что вы используете настройку на основе Docker. Вы должны быть в состоянии установить Docker на macOS и затем выполнить каждый шаг из этого руководства.

Спасибо, @gerhard.

Поддержка Discourse в письме упомянула руководство по macOS как один из вариантов. Но они также указали мне на Руководство для начинающих по установке Discourse для разработки с использованием Docker. Мне в основном нужно просто выполнить задачу самым быстрым способом. Только что проверил цены DigitalOcean, и они оказались гораздо доступнее, чем я ожидал.

Что вы рекомендуете как самый быстрый и простой способ?

Спасибо!

DigitalOcean, вероятно, самый простой вариант, если у вас возникают проблемы с установкой Docker на macOS. Это работает и довольно недорого, учитывая, что вам нужен дроплет лишь на короткое время.

Спасибо.

Я попробовал оба варианта для macOS из руководства, но столкнулся с проблемами. Я оставил комментарий под руководством, но в итоге сдался. Попробую DigitalOcean в следующий раз.

Эта версия Ruby слишком старая. Возможно, стоит попробовать использовать последнюю.

Спасибо. Это, впрочем, интересно. Скрипт установки из руководства явно устанавливает версию 2.6.5. Не понимаю, почему отображается 2.2.1.

Когда я вручную выполняю rbenv install 2.6.5 (как это делает скрипт установки), выводится:

rbenv: /Users/js/.rbenv/versions/2.6.5 уже существует

В то же время ruby -v выводит:

ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin17]

Я предположил, что из логов видно, что используется rvm. Поэтому rvm list выводит:

=* ruby-2.2.1 [ x86_64 ]
   ruby-2.5.0 [ x86_64 ]

Так что я выполнил rvm install "ruby-2.6.5" и снова попытался запустить bundle exec rake autospec. Теперь выводится:

Traceback (most recent call last):

2: from /Users/js/.rvm/rubies/ruby-2.6.5/bin/bundle:23:in `<main>'

1: from /Users/js/.rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'

/Users/js/.rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Не удалось найти 'bundler' (2.1.1), требуемый вашим файлом /Users/js/Documents/Aktuelle-Projekte/Openframe/discourse/Gemfile.lock. (Gem::GemNotFoundException)

Чтобы обновиться до последней версии, установленной в вашей системе, выполните `bundle update --bundler`.

Чтобы установить отсутствующую версию, выполните `gem install bundler:2.1.1`

… похоже, что вам не следует трогать версию rvm? Или я что-то упускаю?

… за это время удалось запустить на Digital Ocean. Все остальные методы по какой-то причине не сработали у меня.

Скорее всего, это уже не проблема, но вы можете использовать rvm use, чтобы указать версию Ruby.

rvm use 2.6.5 --default