لقد نجحت للتو في إعداد أول مثيل لي لـ Discourse بنجاح، رغم أنني واجهت بعض الصعوبات في الطريق. أستخدم Debian Stretch وكنت أتبع دليل تثبيت Docker.
أثناء الإعداد، يقوم السكربت بالتحقق مما إذا كان اسم النطاق الذي أدخلته ينتهي فعليًا على تلك الآلة. يفعل ذلك باستخدام nc (netcat). اكتشفت أن هذه كانت مشكلتي؛ لم يكن netcat مثبتًا، وقد حُلت المشكلة بمجرد تثبيته.
ومع ذلك، أعتقد أن هذا خطأ في سكربت التثبيت. يمكن دالة بسيطة للتحقق من تثبيت nc أن تحل هذه المشكلة، أو ربما يمكن منح المستخدم حرية تخطي التحقق تمامًا، مما سيحل المشكلة أيضًا.
أضطر إلى الاعتذار عن الاختلاف، فهذا يبدو حقًا وكأنه مادة لأخطاء. نعم، أنت تطبع رسالة تحذير يمكن تجاهلها، لكن بالنسبة لشخص يقوم بتثبيت discourse لأول مرة، يجب أن تجعل الأمر أسهل ما يمكن، مما يعني عدم الاضطرار إلى الغوص في الكود المصدري واكتشاف أنك تحتاج إلى تثبيت netcat لجعل هذا يعمل دون أخطاء. أي خطأ سيُربك المستخدم أو مسؤول النظام، مما سيجعلهم يقضون وقتًا في معرفة سبب عدم عمل الأمر ولوم الشخص الذي كتبه باستخدام git blame.
يمكن تجاوز ذلك بسهولة عن طريق إجراء فحص بسيط قبل تشغيل فحص IP، على النحو التالي:
تحقق مما إذا كان netcat مثبتًا.
تابع إذا كان مثبتًا.
إذا لم يكن مثبتًا، اطبع رسالة تحذير واعرض على المستخدم خيارًا بنعم/لا للمتابعة دون الفحص أو للإلغاء حتى يتمكن من تثبيت netcat (أو حتى عرض تثبيتها له عبر apt/yum/pacman).
خيار آخر سيعمل على أنظمة أكثر (ولكن ليس جميعها) مقارنةً بالوضع الحالي هو استخدام مكدس /dev/tcp. يمكن العثور على مزيد من المعلومات حول كيفية القيام بذلك هنا. سيُصلح هذا الأمر في Debian ويعمل تحت Ubuntu، ولم أجربه بعد على توزيعات أخرى.