الرئيسية
» كيف
»
كيفية إنشاء سطح مكتب دبيان كنظام غير قابل للتغيير قائم على OSTree
كيفية إنشاء سطح مكتب دبيان كنظام غير قابل للتغيير قائم على OSTree
مثال توضيحي: لنفترض أن مايا تستخدم نظام Debian 13 على سطح المكتب لأغراض التطوير، وترغب في تحديثات نظام قابلة للتراجع عنها كإصدار كامل. يمكنها استخدام هذا الهدف لتقييم نسخة مشتقة من Debian مبنية على OSTree، ولكن لا ينبغي لها تشغيل أي أمر على تثبيتها الحالي وتوقع أن يصبح غير قابل للتغيير. يتطلب OSTree شجرة نظام تشغيل، وتكاملًا مع نظام الإقلاع، وعملية تحديث مصممة خصيصًا لعمليات النشر.
يخزن OSTree أشجار نظام الملفات الكاملة على شكل التزامات مُرقّمة، ويُهيئ عمليات نشر قابلة للتشغيل. يُمكن اختيار عملية نشر جديدة للتشغيل التالي، بينما تبقى عملية نشر سابقة متاحة للرجوع إليها. يُغيّر هذا من طريقة بناء نظام التشغيل وتحديثه؛ فهو لا يُحوّل إدارة حزم دبيان العادية إلى نظام ذري تلقائيًا. ostree-bootتُوصف حزمة دبيان الحالية بأنها تكامل مع نظام مشتق من دبيان، وتتطلب initramfs مبنيًا بواسطة dracut بالإضافة إلى مُحمّل إقلاع مدعوم. لذلك، تصف الخطوات أدناه سير عمل مشتق قابل للاختبار، وليس تحويلًا مدعومًا بأمر واحد لسطح مكتب دبيان مُثبّت.
قبل إنشاء نظام OSTree، قم بعمل نسخة احتياطية من سطح المكتب واختبر مسار التمهيد في جهاز افتراضي.
ما الذي يغيره برنامج OSTree - وما الذي لا يغيره
OSTree هو نظام لنشر وتحديث أنظمة التشغيل، وليس بديلاً عن مستودع حزم دبيان أو مُحلِّل التبعيات. لا تزال عملية البناء تتطلب تثبيت الحزم وتجميع نظام ملفات جذر كامل. ثم يقوم OSTree بتسجيل هذا النظام ونشره. وللتحديثات، تُنشئ عملية البناء نسخة كاملة أخرى من النظام، وينتقل العميل إليها كنسخة مُنشأة. لهذا السبب، يحتاج سطح مكتب OSTree إلى طريقة قابلة للتكرار لبناء صورة نظامه؛ فالتشغيل apt upgradeعلى جذر النظام المباشر لا يُمثل نموذج التحديث نفسه.
يُعدّ مصطلح "غير قابل للتغيير" اختصارًا مفيدًا، وليس ادعاءً بأن جميع الملفات على الحاسوب للقراءة فقط. في عملية نشر نموذجية، تُعامل شجرة النظام على أنها للقراءة فقط، بينما /etcيحتوي ملف تكوين الجهاز /varعلى ملف الحالة القابل للتغيير. عادةً ما توجد ملفات المستخدم خارج شجرة نظام التشغيل ذات الإصدارات، وغالبًا ما تكون ضمن مجلد /home. يُعدّ تعامل OSTree مع هذه المسارات وإدخالات الإقلاع جزءًا من تصميم النظام. /usrلا تُعدّ التغييرات التي تُجرى على ملف في عملية النشر بديلاً دائمًا لإنشاء صورة جديدة.
1. حدد ما إذا كان هذا الأسلوب مناسبًا لسطح مكتب Debian الخاص بك
بالنسبة لمايا، السؤال الأول هو ما إذا كانت تريد مشروعًا تعليميًا أم نظام تشغيل للاستخدام اليومي. يُتيح نظام OSTree تحكمًا أفضل في التحديثات وعمليات التراجع، لكن دبيان لا تُوفر آلية جاهزة لتحويل محطة العمل هذه في وصف الحزمة. يجب على المطور إعداد شجرة نظام التشغيل، وإنشاء ملف initramfs الخاص بها، ودمج مُحمل الإقلاع، وتحديد كيفية تحويل تحديثات الحزم إلى التزامات جديدة، واختبار الأجهزة. قد يكون توزيع معروف قائم على OSTree خيارًا أفضل لجهاز مكتبي حيث يرغب المستخدم في تجربة مُصانة وجاهزة للتثبيت.
تحقق من سلسلة الإقلاع قبل استثمار الوقت. ostree-bootتُدرج صفحة حزمة دبيان الخاصة بنظام Trixie برنامج dracut كمتطلب أساسي لنظام initramfs، وبرنامج GRUB 2، وsyslinux/extlinux، وU-Boot كعائلات برامج إقلاع مدعومة. لا تضمن هذه القائمة عمل جميع إعدادات البرامج الثابتة، أو تكوينات الإقلاع الآمن، أو ترتيبات تشفير القرص، أو قوائم الإقلاع الخاصة بالبائع دون تكامل إضافي. على وجه الخصوص، اختبر الجهاز نفسه أو تكوين جهاز افتراضي مشابه قبل إجراء أي تعديل على قرصه الداخلي.
اذكر أيضًا ميزات سطح المكتب الأساسية التي يجب أن تبقى: برامج تشغيل الرسومات، وبرنامج Wi-Fi الثابت، وخاصية التعليق والاستئناف، والصوت، والطابعات، والتخزين المشفر، ودعم الشاشات المتعددة، وأي وحدات نواة خارجية. إن بدء التشغيل بنجاح إلى واجهة رسومية ليس سوى البداية. إذا كان برنامج Maya يعتمد على برنامج تشغيل خاص أو وحدة نواة معينة، فيجب أن يكون متوفرًا في الصورة المُنشأة ومتوافقًا مع النواة و initramfs.
2. إنشاء بيئة بناء واختبار آمنة
ابدأ بجهاز افتراضي مؤقت يعمل بنظام دبيان وبنية متوافقة مع الجهاز المستهدف. خذ لقطة للجهاز الافتراضي قبل البدء بالتجربة. انسخ احتياطيًا مجلد المستخدم الرئيسي، وملفات تعريف المتصفح، ومفاتيح SSH، وبيانات استعادة مدير كلمات المرور، وأي بيانات أخرى غير متزامنة مسبقًا. احتفظ بالنسخة الاحتياطية منفصلة عن قرص الجهاز الافتراضي. لا تقم بإعادة تقسيم أو تهيئة جهاز الكمبيوتر المستخدم يوميًا كجزء من الاختبار الأول.
استخدم مجلد بناء منفصل وصورة قرص هدف منفصلة. دوّن ملاحظات حول إصدار دبيان، وبنيته، وقائمة الحزم، وإصدار النواة، ومحمل الإقلاع، والتغييرات التي أُجريت على الشجرة. يساعد سجل البناء القابل للتكرار برنامج مايا على التمييز بين تغيير الصورة الفعلي وتغيير إعدادات الجهاز. إذا كان الهدف هو الاحتفاظ بسطح المكتب الحالي تمامًا، فلن تُحقق شجرة أساسية جديدة ذلك تلقائيًا: يجب نقل الحزم المُثبّتة، وحسابات المستخدمين، وإعدادات الأجهزة، والتكوين عمدًا أو إعادة إنشائها.
قد يختلف توفر الحزم والتبعيات باختلاف إصدار دبيان وبنيته، لذا يُرجى التأكد منها باستخدام أداة APT على جهاز البناء. هذا الإجراء يُثبّت الأدوات فقط على الجهاز، ولا يُغيّر عملية إقلاعه أو يجعل نظام ملفاته الجذر غير قابل للتغيير. يُشير وصف حزمة دبيان صراحةً إلى ostree-bootأنها تُوفّر المكونات اللازمة لإقلاع توزيعة دبيان.
4. أنشئ شجرة جذر دبيان نظيفة
قم بإعداد نظام ملفات جذر كامل باستخدام أدوات حزمة الإصدار أو نظام بناء صور دبيان. قم بتضمين النواة، وsystemd، وبيئة سطح المكتب، والبرامج الثابتة، وبرامج التشغيل اللازمة للجهاز المستهدف، بالإضافة إلى تكامل تمهيد OSTree ودعم initramfs الخاص به. قم بتكوين المستخدمين، واللغة، والشبكة، والخدمات، وإعدادات سطح المكتب الافتراضية بشكل مدروس. على سبيل المثال، لا يُعدّ نظام الملفات الجذر المصغر الذي يُقلع إلى وحدة تحكم سطح مكتبًا بعد، وقد لا يتضمن نظام الملفات الجذر المُنشأ لجهاز واحد برامج تشغيل لجهاز آخر.
قبل تثبيت بنية الشجرة، تأكد من توافقها مع تخطيط نشر OSTree. يشير دليل التكيف مع المصدر الأصلي إلى أن التكوين الافتراضي يقع في `//` /usr/etc، بدلاً من شجرة الجذر التقليدية /etc؛ يستخدم OSTree ذلك كأساس لبنية `//` القابلة للتعديل لكل عملية نشر /etc. يجب أن تتضمن الشجرة أيضًا النواة وملف initramfs متوافقًا في مواقع يفهمها إصدار OSTree المُختار وتكامل الإقلاع. يُنصح بقراءة حزمة الإقلاع الخاصة بـ Debian ودليل المصدر الأصلي معًا: فوجود شجرة دليل صالحة وحدها لا يعني بالضرورة إمكانية تشغيل Debian.
لا تقم بنسخ نظام التشغيل المضيف بالكامل /إلى عملية الالتزام دون تدقيق. فقد يؤدي ذلك إلى التقاط ملفات مؤقتة، وحالة خاصة بالجهاز، وحالة مدير الحزم في غير موضعها، بالإضافة إلى إعدادات تفترض عملية الإقلاع القديمة. يتطلب نظام OSTree من مُنشئ الصورة تحديد كيفية تجميع الحزم وكيفية إنتاج التحديثات. تُعدّ عملية بناء الصورة هذه العمل الهندسي الرئيسي في تحويل نظام سطح المكتب إلى دبيان.
5. قم بحفظ الشجرة المُجهزة في مستودع محلي
بعد تجهيز شجرة الجذر، أنشئ مستودعًا محليًا وقم بتثبيت الشجرة تحت اسم فرع وصفي. في هذا المثال، /srv/debian-rootيمثل الفرع المُجهز الشجرة؛ وهو ليس جذر النظام المضيف قيد التشغيل.
يُسجّل الالتزام الملفات في الشجرة، ويشير الفرع إلى تلك النسخة. لا يُهيّئ قرصًا، ولا يُنشئ مدخل تمهيد للبرنامج الثابت، ولا يُثبت قدرة initramfs على العثور على النشر. احتفظ بالمستودع ومدخلات البناء متاحةً لكي يُمكن إعادة بناء الصورة التالية ومقارنتها. ولخدمة تحديث حقيقية، يجب أيضًا تصميم نقل آمن، وضوابط وصول إلى المستودع، والتزامات موقّعة عند الاقتضاء، وعملية إصدار موثّقة.
تقوم عملية البناء بتجميع شجرة جذر دبيان كاملة، ثم تسجلها كالتزام OSTree ذي إصدار.
6. قم بتوفير قرص اختبار مزود بتكامل تمهيد OSTree
قم بتوفير قرص جهاز افتراضي جديد من خلال برنامج تثبيت أو عملية بناء صور تدعم إنشاء جذر نظام OSTree وتكوين مُحمل الإقلاع الخاص به. admin init-fsيقوم أمر OSTree بتهيئة نظام ملفات جذر فعلي فارغ، ويمكن للمسؤول تهيئة جذر الحالة ونشر تحديث، لكن هذه الأوامر مجرد لبنات بناء وليست وصفة تثبيت كاملة لكل سطح مكتب Debian. فهي لا تُغني عن الحاجة إلى تقسيم القرص، وتثبيت ملفات إقلاع البرامج الثابتة، وإنشاء initramfs متوافق، وضبط إعدادات البرامج الثابتة ومُحمل الإقلاع.
استخدم عائلة مُحمِّل الإقلاع المدعومة من حزمة تكامل دبيان، وتأكد من أن إدخال الإقلاع يُمرِّر مرجع نشر OSTree إلى initramfs. توضح وثائق نشر OSTree أن إدخالات الإقلاع تتضمن ostree=وسيطة نواة، يستخدمها initramfs لتحديد موقع النشر المُختار. بالنسبة للأنظمة التي تحتوي على تشفير، أو LVM، أو RAID، أو Secure Boot، أو وحدات تخزين غير اعتيادية، تأكد من أن initramfs يحتوي على الوحدات والمفاتيح المطلوبة قبل الاختبار. لا تفترض أن إدخال إقلاع دبيان التقليدي السليم سيُشغِّل نشر OSTree تلقائيًا.
للتثبيت الأول، اتبع تعليمات المُثبِّت أو مُنشئ الصور لتحديد مسار الإقلاع الخاص بك بدقة. أمرٌ بسيط كهذا ostree admin deployيُضيف فقط عملية التثبيت الافتراضية إلى نظام OSTree المُهيأ مسبقًا؛ ولا يُحوّل تثبيت Debian الحالي إلى ذلك النظام.
7. قم بتشغيل النظام، وفحصه، واختبار التراجع.
قم بتشغيل الجهاز الظاهري في بيئة النشر الجديدة، وتأكد من أكثر من مجرد شاشة تسجيل الدخول: تحقق من اتصال الشبكة، وتسريع الرسومات، والصوت، وإمكانية تعليق واستئناف التشغيل، ووحدات التخزين المُثبّتة، والتحديثات، وسلوك التطبيقات. ثم افحص قائمة النشر.
sudo ostree admin status
يعرض الأمر قائمةً بالإصدارات المتاحة ويُحدد الإصدار المُشغّل حاليًا. احتفظ بالإصدار السابق السليم أثناء الاختبار. في حال فشل الصورة الجديدة، استخدم قائمة الإقلاع لاختيار الإصدار السابق، أو اتبع إجراءات استعادة الإصدار السابق الموثقة في OSTree. تأكد من بدء تشغيل سطح المكتب السابق وأن بيانات المستخدم سليمة. يُنشئ OSTree نسخًا من شجرة نظام التشغيل؛ ولا يستعيد الملفات الشخصية تلقائيًا أو يعكس تغييرات التطبيقات على البيانات المشتركة /var.
اختبر قائمة الإقلاع واحتفظ بنسخة تشغيل سليمة معروفة قبل قبول التحديث.
8. تحديد عملية التحديث والصيانة
لضمان سهولة صيانة سطح المكتب، يجب أن يأتي كل تحديث لنظام التشغيل من خلال تعديل جديد قابل للمراجعة في شجرة التحديثات. حدد الجهة المسؤولة عن بناء هذا التعديل، وكيفية إدخال تحديثات حزم دبيان إلى الشجرة، وكيفية اختبار تحديثات النواة والبرامج الثابتة، وكيفية وصول التعديلات إلى المستخدمين، ومدة الاحتفاظ بالإصدارات السابقة. إذا احتاج المستخدمون إلى تطبيقات إضافية، فاختر طريقة توزيع تطبيقات مدعومة - مثل Flatpak عند الاقتضاء - بدلاً من تغيير نظام التشغيل الأساسي بصمت باستخدام أوامر APT العادية.
خطط لحالة النظام بعناية. قد ينقل الإصدار الأحدث /etcالتعديلات المحلية، لكن تغييرات التكوين قد تتطلب مراجعة المسؤول. /varتتم مشاركة البيانات بين عمليات النشر، لذا فإن الرجوع إلى إصدار سابق من نظام التشغيل لا يعني بالضرورة الرجوع إلى مخطط قاعدة البيانات أو تنسيق بيانات التطبيق. يجب أن يكون لملفات المستخدم خطة نسخ احتياطي واستعادة خاصة بها. تُحسّن ملفات النظام غير القابلة للتغيير إمكانية التبديل بين إصدارات نظام التشغيل، لكنها لا تجعل حالة الجهاز قابلة للمعاملات بالكامل.
يُستخدم هذا ostree admin statusلتأكيد أي عملية نشر نشطة وما إذا كانت عملية نشر سابقة لا تزال متاحة.
قائمة التحقق من الجاهزية العملية
عملية البناء قابلة للتكرار وتستهدف إصدار دبيان وبنيته المقصودة.
تستخدم الشجرة الجذرية تخطيط التكوين المتوقع لـ OSTree، وتتضمن نواة متطابقة و initramfs، وتحتوي على برامج تشغيل سطح المكتب المطلوبة.
يستخدم النظام المستهدف نظام dracut المدعوم من Debian وتكامل محمل الإقلاع، والذي تم اختباره في جهاز افتراضي قبل تثبيت الأجهزة.
يتم تشغيل عملية التثبيت الجديدة على سطح المكتب، ويمكن تحديد عملية تثبيت سابقة وتشغيلها.
تغطي النسخ الاحتياطية بيانات المستخدم وأي حالة لن يتم استعادتها عند التراجع عن نظام التشغيل.
توجد عملية موثقة لتحديثات الحزم، وإعادة بناء الصور، وتوقيع الإصدارات أو التحقق منها، واختبار تغييرات النواة.
بالنسبة لسطح مكتب مايا الافتراضي، تتمثل النتيجة العملية في صورة OSTree مُختبرة مُشتقة من دبيان، وطريقة قابلة للتكرار لإنتاج عملية النشر التالية - وليس تثبيت دبيان غير مُعدّل يصبح تلقائيًا غير قابل للتغيير. ابدأ في جهاز افتراضي، واحرص على تبسيط عملية التحديث، وانتقل إلى الجهاز الفعلي فقط بعد التأكد من عمل تكامل الإقلاع، وبرامج تشغيل سطح المكتب، ومسار التراجع بشكل صحيح على الجهاز المُستهدف.