التثبيت على macOS – فشل: يمكن لـ Scheduler::Defer إيقاف واستئناف المهام

لقد كنت أتبع الدليل الموجود على Install Discourse on macOS for development. للأسف، واجهت فشلاً عند تشغيل الاختبارات باستخدام الأمر:

bundle exec rake autospec
الإخفاقات:

  1) Scheduler::Defer يمكنه الإيقاف المؤقت والاستئناف
     خطأ في التنفيذ: @reactor&.stop
     
     خطأ في الخيط:
       تم قتل الخيط
     # /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 مثالاً، فشل واحد، 4 معلقة

الأمثلة الفاشلة:

rspec ./spec/components/scheduler/defer_spec.rb:67 # Scheduler::Defer يمكنه الإيقاف المؤقت والاستئناف

في البداية، واجهت بعض المشاكل أثناء تثبيت التبعيات بتشغيل سكريبت التثبيت المرفق مع الدليل. لكنني أعتقد أن جميعها تم حلها الآن.

كيف يمكنني إصلاح هذه المشكلة؟

شكراً لك!

الغرض من التثبيت المحلي
في حال كان هذا ذا صلة: أحاول الهجرة من مجموعة Google إلى نسخة مستضافة من Discourse باستخدام هذا الدليل. الفكرة هي إعداد نسخة محلية لإجراء الهجرة محلياً، ثم رفع النسخة الاحتياطية إلى النسخة المستضافة، حيث لا أملك صلاحيات root على النسخة المستضافة.

يفترض هذا الدليل أنك تستخدم إعدادًا قائمًا على Docker. يجب أن تكون قادرًا على تثبيت Docker على نظام macOS ثم اتباع كل خطوة في ذلك الدليل.

شكرًا لك، @gerhard.

ذكرت دعم Discourse دليل macOS كخيار في رسالة بريد إلكتروني. لكنهم أشاروا أيضًا إلى دليل المبتدئين لتثبيت Discourse للتطوير باستخدام Docker. أنا فقط أريد إنجاز المهمة بأسرع طريقة ممكنة. لقد قمت للتو بالتحقق من أسعار DigitalOcean، ويبدو أنها أكثر بأسعار معقولة مما توقعت.

ما الذي توصي به كأسرع وأسهل طريقة؟

شكرًا!

يُعد DigitalOcean الخيار الأسهل على الأرجح إذا كنت تواجه صعوبة في تثبيت Docker على نظام macOS. فهو يعمل بكفاءة وسعره معقول جدًا، خاصةً أنك ستحتاج إلى الـ Droplet لفترة قصيرة فقط.

شكرًا لك.

لقد جربت الآن كلا الخيارين لنظام 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