macOS에 설치 – 실패: Scheduler::Defer가 일시 중지 및 재개를 수행할 수 있음

Install Discourse on macOS for development 가이드를 따라 진행 중입니다. 그런데 다음 명령어로 스펙을 실행할 때 실패가 발생합니다:

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 Group에서 호스팅된 버전의 Discourse로 마이그레이션하려는 것입니다. 호스팅된 버전에는 루트 액세스 권한이 없으므로, 로컬 버전을 설정하여 로컬에서 마이그레이션을 수행한 후 백업을 호스팅된 버전에 업로드할 계획입니다.

해당 가이드는 Docker 기반 설정을 사용하고 있다고 가정하고 작성되었습니다. macOS에 Docker를 설치한 후, 그 가이드의 모든 단계를 따를 수 있어야 합니다.

감사합니다, @gerhard.

Discourse 지원팀이 이메일에서 macOS 가이드를 옵션으로 언급해 주었습니다. 하지만 동시에 Docker를 사용하여 개발용 Discourse 설치하기: 초보자 가이드도 안내해 주셨어요. 저는 결국 가장 빠르고 간편한 방법으로 일을 마무리하고 싶습니다. DigitalOcean 가격도 확인해 봤는데, 예상보다 훨씬 저렴하더군요.

가장 빠르고 쉬운 방법을 추천해 주실 수 있을까요?

감사합니다!

macOS에서 Docker 설치를 어렵게 느끼고 있다면, DigitalOcean이 아마도 가장 쉬운 선택지일 것입니다. 드롭릿을 짧은 시간 동안만 필요로 하므로, 가격이 꽤 저렴하다는 점을 고려하면 잘 작동합니다.

감사합니다.

가이드의 macOS용 두 가지 옵션을 모두 시도해 보았지만 문제가 발생했습니다. 가이드 아래에 댓글을 남겼지만 결국 포기했습니다. 다음으로 DigitalOcean을 시도해 보겠습니다.

해당 Ruby 버전은 너무 오래되었습니다. 최신 버전을 사용해 보시는 것을 권장합니다.

감사합니다. 그런데 흥미로운 점이 있습니다. 가이드의 설치 스크립트는 명시적으로 2.6.5를 설치합니다. 그런데 왜 2.2.1이 표시되는지 전혀 모르겠네요.

수동으로 rbenv install 2.6.5를 실행하면(설치 스크립트가 하는 것과 동일하게), 다음과 같은 내용이 출력됩니다:

rbenv: /Users/js/.rbenv/versions/2.6.5 already exists

반면에 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': Could not find 'bundler' (2.1.1) required by your /Users/js/Documents/Aktuelle-Projekte/Openframe/discourse/Gemfile.lock. (Gem::GemNotFoundException)

To update to the latest version installed on your system, run `bundle update --bundler`.

To install the missing version, run `gem install bundler:2.1.1`

… rvm 버전은 건드리지 않는 게 좋다는 말씀이신가요? 아니면 제가 뭔가 놓치고 있는 건가요?

… 그 사이에 Digital Ocean에서 구동하는 데 성공했습니다. 다른 방법들은 전부 제게는 실패했습니다.

지금 당장은 문제가 아닐 가능성이 높지만, rvm use를 사용해 Ruby 버전을 지정할 수 있습니다.

rvm use 2.6.5 --default