لو بدأت رحلتك مع لينكس في السنوات الأخيرة، فقد تكون أول توزيعة جربتها هي Ubuntu أو Mint أو حتى Fedora. لكن ماذا لو كنت تبحث عن تجربة لينكس تقليدية إن جاز التعبير، تعتمد فيها أكثر على قراءة ملفات الإعداد وتعديلها بمحرر نصوص عادي؟
سبب المقدمة هو شرح اليوم الذي نحاول من خلاله فهم أساس توزيعة عريقة ظلت متمسكة بمبادئها ولم تتغير تقريبا من عقود. الكلام هنا هو عن Slackware!
عن التوزيعة في البداية #
الموضوع بدأ سنة 1993 على يد مطور اسمه Patrick Volkerding. تخيل أن هذه التوزيعة التي انطلقت في بداية التسعينات لا تزال حية وتتلقى التحديثات حتى اليوم لتكون بذلك من أقدم توزيعات لينكس التي لا تزال قيد التطوير المستمر بفضل مجتمعها الوفي.
مصطلحات أساسية لتسهيل الفهم #
مبدأ البساطة (KISS Principle) #
اختصار لعبارة Keep It Simple, Stupid. في سلاكوير البساطة هنا تعني بساطة تصميم النظام من الداخل وتقليل التعقيد في أدوات إدارته وليس بالضرورة سهولة الاستخدام للمبتدئين.
الحزم القريبة من الأصل (Vanilla Packages) #
المقصود بهذا المصطلح هو تفضيل إبقاء البرامج قريبة مما يقدمه مطوروها الأصليون مع تقليل التعديلات الخاصة بالتوزيعة. لكن هذا لا يعني غياب الترقيعات (Patches) تماما فقد تُضاف لإصلاح مشكلات أو لضمان عمل البرنامج مع النظام.
أدوات إدارة الحزم (pkgtools) #
هي مجموعة الأدوات الأساسية لإدارة الحزم في سلاكوير، مثل installpkg للتثبيت وupgradepkg للترقية وremovepkg للإزالة. وعن قصد لا تتولى حل الاعتماديات (Dependencies) وجلبها تلقائيا.
نصوص بناء الحزم (SlackBuilds) #
هي نصوص برمجية (Scripts) تُنظم خطوات بناء حُزمة قابلة للتثبيت وغالبا يشمل ذلك تجميع البرنامج من الكود المصدري. ويوفر مجتمع المطورين نصوصا لبرامج إضافية عبر مشاريع مثل SlackBuilds.org. بعد البناء تُثبت الحزمة الناتجة بأدوات إدارة الحزم.
كيف تعمل إدارة الحزم والاعتماديات؟ #
في توزيعات مثل Ubuntu وMint، تتولى أدوات مثل APT تنزيل الحُزم واعتمادياتها وتثبيتها. هذا يُسهّل الاستخدام ويساعد على إدارة العلاقة بين البرنامج والمكتبات التي يحتاجها.
أما المشكلة المعروفة بـ تعارض الاعتماديات (Dependency Hell) فتظهر عندما تتطلب البرامج إصدارات غير متوافقة من الحُزم أو المكتبات. وهنا الإدارة اليدوية لا تُلغي احتمال حدوثها كما أن الأتمتة ليست ضمانا لغياب المشكلات.
هنا في سلاكوير لا يجلب مدير الحُزم الأساسي الاعتماديات بل يترك لك مهمة قراءة متطلبات البرنامج وتوفيرها. يعني بالمختصر أنت من يقرر ما يتم تثبيته لكنك تتحمل أيضا مسؤولية التأكد من توفر المكتبات والإصدارات المناسبة.
وتوجد أداة slackpkg لتسهيل تنزيل الحُزم الرسمية وتثبيتها وتحديثها مع بقاء إدارة الاعتماديات من مسؤولية المستخدم.
غياب الحل الآلي للاعتماديات لا يضمن وحده عدم وجود خدمات تعمل في الخلفية أو خلو النظام من التعارضات فذلك يعتمد أيضا على الحُزم المثبتة وإعدادات الخدمات.
الإعداد والتهيئة في Slackware #
تعتمد سلاكوير على SysVinit مع نصوص بدء تشغيل بأسلوب BSD، وتوجد نصوص إدارة الخدمات عادة في المسار /etc/rc.d/. هذا يتيح للمستخدم قراءة خطوات التهيئة وتعديلها مباشرة، وقد يجعل تتبع الأخطاء أوضح لمن يعرف هذه البنية.
كما توفر التوزيعة أدوات إعداد بقوائم نصية، لذا لا يتطلب كل إعداد كتابة الملفات يدويا والفكرة هي إبقاء أدوات الإدارة وملفات الإعداد قريبة من المستخدم.
أما التوزيعات التي تستخدم systemd أو واجهات إعداد رسومية فتظل فيها ملفات إعداد وأدوات لتتبع الأخطاء أيضا. الفرق يتعلق بطريقة التنظيم بين المكونات وقد تناولنا هذا الجانب في مقالنا حول systemd.
الجديد القديم هنا باختصار هو تفضيل البنية التقليدية والتعديلات المحدودة على البرامج مع الاهتمام بالاستقرار. لكن ذلك لا يعني أن كل تحديث سيكون خاليا من الأخطاء أو أن المستخدم سيعرف سبب كل عطل بمجرد حدوثه.
التبسيط من منظور المستخدم العادي #
التوزيعات ذات الأدوات المتكاملة: منزل ذكي #
تخيل أنك اشتريت منزلا ذكيا وكثير من تجهيزاته يعمل بضغطة زر. الأمر مريح ويوفر عليك إعداد تفاصيل كثيرة بنفسك لكن عند حدوث عطل قد تحتاج إلى فهم النظام الذي يدير هذه التجهيزات وأدوات تشخيصه.
Slackware: منزل تشارك في تجهيز تفاصيله #
من ناحية سلاكوير، تخيل أنك تشارك في تجهيز المنزل وتراجع بنفسك مسارات الأسلاك وطريقة توصيلها. الأمر يتطلب منك وقتا وجهدا وصبرا لتتعلم الأساسيات لكن هذه المعرفة قد تساعدك لاحقا على تحديد مكان الخلل وإصلاحه.
هذا التشبيه يوضح اختلاف أسلوب الإدارة ولا يعني أن التوزيعات الأخرى تمنعك من فهم نظامك أو أن سلاكوير تضمن لك إصلاح كل مشكلة بسهولة.
ختاما #
ربما لا تكون سلاكوير الخيار الأول لكل مبتدئ لكنها تبقى من التوزيعات التي تحافظ على البساطة في التصميم وتمنح المستخدم دور مباشر في إدارة النظام.
وقد تُناسب من يفضل أدوات التهيئة التقليدية وإدارة الاعتماديات بنفسه مع الاستعداد للقراءة والتعلم وتحمل مسؤولية الإعداد والصيانة.
نتمنى أن تكون الصورة قد وصلت ولو بالشيء القليل.
روابط ذات صلة #
- فلسفة سلاكوير ومبدأ البساطة
- دليل إدارة الحزم والاعتماديات
- شرح نظام التهيئة وعملية الإقلاع
- دليل استخدام نصوص SlackBuilds.org