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>'
完了までにかかった時間:9 分 53 秒(ファイルの読み込みに 25.84 秒を要しました)
6460 件の例、1 件の失敗、4 件の保留
失敗した例:
rspec ./spec/components/scheduler/defer_spec.rb:67 # Scheduler::Defer can pause and resume
当初は、ガイドのインストールスクリプトを実行して依存関係のインストール時にいくつかの問題に直面しましたが、現在はすべて解決したと考えています。
この問題をどのように解決すればよいでしょうか?
よろしくお願いいたします。
ローカルインストールの目的
関連するかどうかはわかりませんが、私は Google グループからホスト版の Discourse へ移行しようとしています。その手順は こちら を参照しています。ホスト版に root アクセスがないため、ローカル環境で移行作業を行い、その後バックアップをホスト版にアップロードすることを計画しています。
gerhard
(Gerhard Schlager)
2020 年 3 月 12 日午後 10:24
2
このガイドは Docker ベースの環境を前提としています。macOS に Docker をインストールし、ガイドのすべての手順に従うことが可能です。
@gerhard さん、ありがとうございます。
Discourse のサポートチームからメールで macOS ガイドをオプションとして紹介されました。ただし、同時に「Docker を使用した Discourse 開発環境のインストールに関する初心者ガイド」も案内されました。
Developing using Docker
Since Discourse runs in Docker, you should be able to run Discourse directly from your source directory using a Discourse development container.
Pros: No need to install any system dependencies, no configuration needed at all for setting up a development environment quickly.
Cons: Will be slightly slower than the native dev environment on Ubuntu, and much slower than a native install on MacOS.
See also Developing Discourse using a Dev Container …
とにかく最も迅速に作業を進めたいと考えています。DigitalOcean の料金も確認しましたが、予想よりもずっと手頃な価格のようです。
最も速く、簡単な方法はどれだとお勧めですか?
よろしくお願いいたします。
gerhard
(Gerhard Schlager)
2020 年 3 月 12 日午後 10:36
4
macOS で Docker のインストールに問題がある場合は、DigitalOcean が最も簡単でしょう。動作も確実で、短時間のみの利用であれば、非常にリーズナブルです。
ありがとうございます。
ガイド に記載されている macOS 用の 2 つのオプションをどちらも試してみましたが、問題が発生しました。ガイドの下にコメントを残しましたが、結局断念しました。次は DigitalOcean で試してみます。
Falco
(Falco)
2020 年 3 月 13 日午前 2:14
6
Jeremias_Volker:
ruby-2.2.1
その 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 で動作させることができました。他のすべての方法は、私にとって何かしらの理由で失敗しました。
Stephen
(Stephen)
2020 年 3 月 13 日午後 12:23
9
おそらく今は問題ではないと思いますが、rvm use を使って Ruby のバージョンを指定できます。
rvm use 2.6.5 --default