كيفية الترقية إذا كان `/var/discourse` يحتوي فقط على `shared` وليس مستودع git

أهلاً بكم جميعاً،

لدي نسخة من Discourse تم إعدادها من قبل المسؤول السابق على خادم الويب الخاص بقسمنا. لا أعرف الكثير عن Discourse، لكنها تتطلب تحديثاً وتقترح القيام بما يلي:

        cd /var/discourse
        git pull
        ./launcher rebuild app

لكن عندما أدخل إلى /var/discourse باستخدام cd، أرى فقط مجلد shared، وبالتالي يفشل أمر git pull (لأنه ليس مستودع git). ما الذي يجب عليّ فعله؟

ينبغي عليك إجراء تثبيت نظيف على جهاز افتراضي جديد، وإنشاء نسخة احتياطية، ثم استعادتها إلى التثبيت الجديد.

إذا لم يعجبك هذا الحل، فيجب عليك طلب من قام بإعداد ذلك النظام ليقوم بإصلاحه.

@pfaffman ماذا تقصد بآلة افتراضية جديدة؟ هل تقصد صورة Docker لمنصة Discourse؟ المشكلة هي أنني لا أستطيع العثور على دليل إرشادي لإدارة Discourse عبر Docker.

تعني الآلة الافتراضية الجديدة خادمًا افتراضيًا جديدًا، بافتراض أن مثيلتك ليست على عتاد مخصص.

إذا كان لديك Discourse قيد التشغيل ولكن /var/discourse فارغ، فإما أن يكون ذلك تثبيتًا قديمًا جدًا أو حزمة غير مدعومة.

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

يمكنك القيام بذلك هنا: https://meta.discourse.org/t/discourse-official-standard-installation/142537

هذا في الواقع هو الأرجح ما يحدث. إنه يعمل على إصدار Discourse 2.1.0 (إذا كان ذلك يوضح الأمور أكثر).

هذه هي النقطة: مثيلي موجود على عتاد مخصص بالفعل.

إذًا، أفهم أنه حاليًا لا توجد Docker متضمنة. على الأقل، ليس يدويًا. على الأقل، من الجيد معرفة أن هناك طريقة واحدة فقط لإعداده، وتستخدم فقط git clone وسكربت الإعداد.

ما يزعجني هو كيفية التخلص بلطف من الإصدار القديم، نظرًا لأن كل شيء يحدث على جهاز فيزيائي فعلي (أي لا شيء “افتراضي”). لقد قمت بنسخ احتياطي، وهذا سهل. والآن ماذا؟

الآن قم بالتثبيت على جهاز مختلف. يُفضل استخدام آلة افتراضية (VM) لأنها أسهل في توسيع الموارد. توجد متطلبات النظام في وثيقة التثبيت.

بمجرد تشغيل التثبيت الجديد، قم باستعادة نسخة الاحتياطية.

ما نوع هذه النسخة؟ ما مدى انشغالها؟ هل تُستخدم باستمرار؟

يا إلهي… هذا الإصدار يعود إلى أواخر منتصف عام 2018. أنت بالتأكيد بحاجة إلى التحديث. فبالإضافة إلى فقدان العديد من الميزات الرائعة، تم إصدار عدد لا بأس به من الإصلاحات الأمنية، بما في ذلك بعض الإصلاحات الحرجة، التي لا تتوفر لديك.

للأسف، لا أملك جهازًا مختلفًا.

شكرًا لك على الملاحظات، لكن هذا ليس موضع شك: أنا أحاول التحديث. لم أكن مديرًا لهذه النسخة قبل أمس، وأنا أدرك أهمية التحديثات.

شكرًا لكم جميعًا على الإجابات! لقد سألت الشخص الأكبر سنًا، وساعدني. كان مستودع Git داخل /var/docker بدلاً من /var/discourse لسبب ما. من هناك، كان من الممكن تطبيق الإجراء القياسي. نحن الآن في أحدث إصدار (2.6)، هلا! :tada:

آها! هذا كان المكان الموصى به في وقت بعيد جدًا (قبل أن أبدأ في استخدام Discourse منذ 4 سنوات).

يبدو أن حلّي “اسأل الرجل العجوز” قد نجح حقًا!

أنصحك بإبقاء بعض التوثيق احتياطياً:

echo "it's in /var/docker" > where-is-launcher

هذه فكرة جيدة. أو ربما

 cd /var/
 ln -s /var/docker discourse

رغم أن ذلك قد يُربك launcher.

ليست فكرة جيدة لأن /var/discourse موجود بالفعل ويحتوي على shared