كيفية إدارة نظام قائم على rpm-ostree توزيعتي Silverblue و Kinoite على سبيل المثال

milad-fakurian-vON-QEM5Ako-unsplash.jpg

مقدمة:

كنت قد تكلمت عن rpm-ostree في مقال سابق مقدمة حول توزيعة Fedora Silverblue أما اليوم فسنستعرض طريقة استخدامه.

بشكل افتراضي، كل عملية تجرى باستخدام rpm-ostree ليس لها تأثير على نظام التشغيل الخاص بك، حيث أن هذه التغييرات ستصبح سارية المفعول بعد إعادة التشغيل. وتسمى هذه الحالة بالنشر المعلق، مما يقدم حماية استثنائية من المشاكل التي تجعل نظامك غير قابل للعمل.

عرض حالة النظام:

rpm-ostree status

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

ترقيم الصور يبدأ من الرَّقْم 0؛ أي أنّ أول صورة تعرض يكون 0 أما الثانية فيكون رقمها 1 وهكذا…

تحديث التوزيعة:

يقوم هذا الأمر بترقية النظام، حيث يتم إنشاء صورة جديدة للنظام (نظام ملفات الجذر) وجعلها إعدادا افتراضيا قابلا للتمهيد عند إعادة التشغيل مرة أخرى.

rpm-ostree update

للتحقق من التحديثات المتاحة دون تنزيلها، قم بتشغيل:

rpm-ostree upgrade --check

للتحقق من قائمة الحزم المتاحة للتحديث دون تنزيلها، قم بتشغيل:

rpm-ostree update --preview

تدعم توزيعتا Silverblue و Kinoite التحديثات التلقائية؛ لتمكين ذلك سنحتاج إلى تعديل هذا المِلَف:

sudo nano /etc/rpm-ostreed.conf

ثم تحديد خيار AutomaticUpdatePolicy=stage. بعد حفظ الملف سنحتاج إلى إعادة تشغيل خدمة rpm-ostree وخدمة سيستم دي:

rpm-ostree reload

systemctl enable rpm-ostreed-automatic.timer --now

مستودعات التوزبعة Remotes:

لعرض قائمة مستودعات التوزيعة (التي يمكن القول أنها مثل مستودعات فلاتباك)

ostree remote list

لإضافة متسودع:

ostree remote add REMOTE URL

لحذف مستودع:

ostree remote remove REMOTE

لعرض قائمة الصور التي يحتويها المستودع:

ostree remote refs REMOTE

الترقية بين الإصدارات الرئيسية:

يمكن الترقية بين الإصدارات الرئيسية (مثلا من اﻹصدار 35 إلى اﻹصدار 36 أو إلى الإصدار 33…) أو حتى بين فروع نفس اﻹصدار (من المستقر إلى الفرع الاختباري testing) كما يمكنك الانتقال بين إصدار Silverblue و Kinoite دون التأثير على نظامك الحالي ﻷنه سينشئ صورة جديدة قابلة للتمهيد عند اﻹقلاع التالي.

في البداية سنحتاج إلى عرض قائمة صور النظام المتوفرة في المستودعات:

ostree remote refs REMOTE

بعد ذلك ننفذ اﻷمر التالي:

rpm-ostree rebase REMOTE:BRANCH

العودة إلى الإصدار السابق:

يحتفظ كل من Silverblue و Kinoite بنسخة من الإصدار السابق، الذي يمكن التبديل إليه بدلاً من أحدث إصدار. مع أنّ هذا لا يكون ضروريًا في العادة، فإنه قد يكون مفيدًا إذا كانت هناك مشكلة في التحديث أو الترقية.

هناك طريقتان للعودة إلى الإصدار السابق:

التراجع المؤقت: للرجوع مؤقتًا إلى إصدار سابق، ما عليك سوى إعادة التشغيل وتحديد الإصدار السابق من قائمة التمهيد.

ملاحظة: في حالة التراجع المؤقت إذا قمت ببعض العمليات مثل تثبيت الحزم أو حذفها فإن التغييرات ستتم على صورة جديدة قائمة على الصورة الافتراضية (مثلا لدي إصداران 35 و36 والثاني هو اﻷساسي لكني أقلعت من اﻹصدار 35 وقمت بتثبيت بعض الحزم سيقوم عندها OSTree بنشر صورة جديدة قائمة على اﻹصدار 36 مع هذه التغييرات).

التراجع الدائم: للرجوع إلى إصدار سابق بشكل دائم، استخدم الأمر:

rpm-ostree rollback

يقوم هذا الأمر بتغيير رقم الصورة الافتراضية واستبدالها بالصورة التي قبلها، مما يعني تغيير ترتيب الصورة في محمل اﻹقلاع.

ملاحظة: ليس بالضرورة عند التراجع أن يكون إلى إصدار سابق مثلا يمكنني العودة إلى اﻹصدار 36 من خلال الإصدار 35 حيث سيغير ترتيب الصور.

العمليات اﻷساسة على حزم (Layering packages):

طريقة التوزيع الأساسية للحزم في التوزيعات القائمة على rpm-ostree هو استخدام الحاويات كلما أمكن ذلك سواء عن طريق flatbak أوtoolbox. لكن هذا قد لا يكون هذا مجديًا أو عمليًا في بعض الأحيان، لذلك يمكننا استخدام rpm-ostree لتثبيت هذه الحزم.

الحزم يتم تثبيتها في نشر جديد (جذر أو صورة جديدة) وتتطلب إعادة التشغيل لتتمكن من استخدامها. والفائدة من ذلك هي حماية النظام الأساسي من أي تغييرات تسبب تعطله.

يمكنك تثبيت أي حزمة RPM تقريبًا بشكل دائم على Silverblue أو Kinoite مع ضمان تحديثها مع حزم النظام. ومع ذلك، من اﻷفضل تثبيت الحزم الضرورية فقط لأنك ستحتاج إلى إعادة تشغيل النظام قبل أن تتمكن من استخداما

يقوم rpm-ostree بالاستعلام عن مستودعات فيدورا للحزمة التي تم طلبها، ثم تنزيلها وتثبيتها في نشر منفصل. كما يمكنك تمرير رابط للحزمة مثلا من مستودع koji أو حتى تنزيل حزمة RPM محليا وتثبيتها.

مثال:

rpm-ostree install htop

rpm-ostree install https://kojipkgs.fedoraproject.org//packages/htop/3.1.2/1.fc35/x86_64/htop-3.1.2-1.fc35.x86_64.rpm

rpm-ostree install ~/Downloads/htop-3.1.2-1.fc35.x86_64.rpm

نلاحظ في الصورة أعلاه أنه تم تثبيت حزمتي htop و neofetch في صورة جديدة قابلة للتمهيد عند تشغيل الجهاز مرة أخرى.

لتثبيت مستودعي rpm-fusion:

sudo rpm-ostree install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo rpm-ostree install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

لحذف أحد هذه الحزم يمكنك استخدام اﻷمر التالي:

rpm-ostree uninstall neofetch

إذا كنت تريد إزالة كافة الحزم:

rpm-ostree uninstall --all

إدارة حزم النظام:

يقدم rpm-ostree أوامر لتجاوز (تعديل) طبقة OSTree الأساسية. يجب إجراء هذه التعديلات بحذر ولا يُقصد منها عادةً أن تكون تغييرات دائمة. حيث يمكنك استخدام الأمر override لإدارة الحزم الأساسية.

حذف حزم النظام: على سبيل المثال، لإزالة toolbox المثبت افتراضيا:

rpm-ostree override remove toolbox

استبدال حزم النظام: كما يمكنك استبدال حزم النظام بأخرى سواء تحديث لهذه الحزمة أو إصدار سابق لها وذلك عبر تمرير رابط الحزمة أو مسارها إن تم تنزيلها:

rpm-ostree override rpm-ostree override replace https://kojipkgs.fedoraproject.org/packages/podman/4.0.0/10.fc35/x86_64/podman-4.0.0-10.fc35.x86_64.rpm

في المثال أعلاه استبدلت إصدار 3.3 podman ب 3.4 podman.

إزالة التغييرات: إذا كنت تريد إزالة هذه التغييرات على النظام مع ملاحظة أنه يجب تمرير اسم الحزمة التي تم استبدالها أو حذفها:

rpm-ostree override reset podman

تنظيف صور النظام:

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

  • لإزالة عمليات النشر المعلق (التمهيد التالي):

rpm-ostree cleanup --pending

  • لإزالة عمليات النشر التي تستخدم للتراجع:

rpm-ostree cleanup --rollback

ملاحظة: لن يؤثر اﻷمر cleanup على أي عمليات نشر تم “تثبيتها” عبر اﻷمر ostree admin pin.

يهدف تثبيت صور النظام عن طريق الأمر ostree admin pin إلى زيادة عدد الصور التي يتم الاحتفاظ بها مع ضمان عدم حذفها ذلك أن تقنية OSTree تحتفظ بصورتين للنظام (التي تستعملها والنسخة السابقة).

لتثبيت صورة ما ننظر إلى ترتيبها عن طريق rpm-ostree status مع بدأ العد من الرَّقْم 0 من اﻷعلى إلى اﻷسفل:

ostree admin pin 0

لإلغاء أمر التثبيت:

ostree admin pin --unpin 3

ميزات تجريبية:

يقدم rpm-ostree ميزة تجريبية تمكنك من مباشرة التغييرات التي قمت بها دون إعادة التشغيل:

بالنسبة لأمر التثبيت:

rpm-ostree install --apply-live screenfetch

بالنسبة لعمليات الاستبدال:

rpm-ostree override replace podman

rpm-ostree ex apply-live --allow-replacement

عرض الحزم:

لعرض قائمة الحزم المثبتة سواء المثبتة افتراضيا أو التي قمت بتثبيتها فيمكنك استخدام هذا اﻷمر:

rpm -qa

لعرض إصدار حزمة ما:

rpm -q pkg-name

نصائح وإرشادات:

  • يدعم مشروع فيدورا سطح المكتب جنوم عن طريق Silverblue وسطح المكتب كدي عن طريق Kinoite فقط أما الباقي فهي مشاريع غير رسمية مثل مشروع Sodalite الذي يقدم واجهة بانثيون الخاصة بتوزيعة إلمنتري.

  • عندما تريد تثبيت أحد البرامج من الأفضل البحث عنه بواسطة فلاتباك، إذا لم يكن موجودًا فاستخدم Toolbox. وإذا لم تتمكن من تشغيلها عبر Toolbox، يبقى خِيار تثبيتها عبر rpm-ostree لذلك اجعله آخر أولوياتك للحفاظ على صورة النظام نظيفة.

  • لا تستخدم مستودعات rpm-fusion و مستودع copr إلا إذا كنت بحاجة إليها، وتأكد من حذفها عند التبديل بين الفروع والإصدارات المختلفة للتوزيعة في حالة مواجهة مشكلات.

خاتمة:

يهدف هذا الدليل إلى إعطائك فكرة حول كيفية إدارة نظامك سواء توزيعة Silverblue أو Kinoite. بالطبع، هناك العديد من الأشياء الأخرى التي يمكن القيام بها باستخدام ostree و rpm-ostree، وبما أن إدارة النظام بهذه الطريقة مختلفة عن التوزيعات التقليدية فستحتاج بعض الممارسة والوقت، كما لا تنس في حالة أردت مزيدا من اﻹطلاع كتابة هذا اﻷمر في الطرفية:

man rpm-ostree

man ostree

لقد وصلنا إلى نهاية هذا المقال. إذا كان لديك أي شيء تريد إضافته إلى هذا الموضوع أو إذا كانت لديك أسئلة، فأنا في انتظارك في قسم التعليقات أدناه.

بعض الروابط المهمة:

هذا الموضوع فائز بجائزة أسس للكتابة

هذا الموضوع فائز بجائزة أسس للكتابة وهي اول جائزة عربية مخصصة للكتابة عن البرمجيات الحرة والمفتوحة.

الموضوع متوفر على مدونة gnulinuxsa هنا:

5 إعجابات

:slight_smile:
جميل !

أرى أن العنوان كبير ويمكن إختصاره
أقترح تغيير العنوان مثلا الى :
إدارة نظام rpm-ostree على Fedora SilverBlue

شكرا على مجهودك الرائع لإنتاج هذه المقالة الشاملة حول مدير الحزم هذا.

يسعدني اقتراحك، لقد فكرت في ذلك من قبل لكن بما أن توزيعة kinoite أصبحت رسمية لم أرد استثنائها.

إعجاب واحد (1)

العفو أخي صالح، عند أول تجربة لي من Silverblue قررت كتابة مقالات تشرح هذه التوزيعة رغم الكثير من التماطل.

لا أظن أن كلمة مدير حزم توفي حقه لٱنه يدير صور النظام أيضا، لذا هو يجمع بين الاثنين.

إعجابَين (2)

شكرا على الشرح الممتاز.
شخصيا قمت بتجربة Silverblue قبل شهرين تقريبا ، لكن لسبب ما ، لم أستطع تشغيل الـ WiFi حيث أن القطعة من إنتاج Broadcom سيئة السمعة (بالنسبة لمجتمع البرمجيات الحرة على الأقل).
التعريف الخاص بها ليس مفتوح المصدر ، لكنه يأتي مع التوزيعات الأخرى مثل Ubuntu و Manjaro .

ما هو السبب في ذلك وكيف يمكن تثبيت تعريف غير مفتوح المصدر في توزيعة حرة بالكامل من عائلة RedHat ؟ فأنا أود منح Silberblue فرصة أخرى لأنها تعجبني كثيرا.

العفو.
السبب في ذلك أن توزيعة فيدورا تأتي بتعريفات حرة، فتحتاج إلى إضافة مستودع rpm-fusion non free لتثبيت التعريفات المغلقة الخاصة ببطاقة wifi.

أقترح تغيير العنوان ل

كيفية إدارة نظام قائم على rpm-ostree كتوزيعتي Silverblue و Kinoite

ولا اتوقع هناك اي توزيعه سوف تستخدم ostree الا فيدورا, بحكم البقية لا يستخدمون RPM او لهم مدير اخر مثل MicroOS

الا يمكن القول على rpm-ostree مدير حزم؟
اذا يمكن القول عليه مدير حزم يمكن تغيير العنوان الى:

كيفية إستخدام مدير حزم rpm-ostree على توزيعتي Silverblue و Kinoite