كنت قد تكلمت عن 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
rpm-ostree install htop neofetch1366×557 78 KBrpm-ostree install htop neofetch-11366×539 32.5 KB
نلاحظ في الصورة أعلاه أنه تم تثبيت حزمتي 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
الذي يقدم واجهة بانثيون الخاصة بتوزيعة إلمنتري. - عندما تريد تثبيت أحد البرامج من الأفضل البحث عنه بواسطة فلاتباك Flatpak، إذا لم يكن موجودًا فاستخدم Toolbox، وإذا لم تتمكن من تشغيلها عبر Toolbox، يبقى خِيار تثبيتها عبر
rpm-ostree
لذلك اجعله آخر أولوياتك للحفاظ على صورة النظام نظيفة. - لا تستخدم مستودعات
rpm-fusion
ومستودعcopr
إلا إذا كنت بحاجة إليها، وتأكد من حذفها عند التبديل بين الفروع والإصدارات المختلفة للتوزيعة في حالة مواجهة مشكلات.
خاتمة:
يهدف هذا الدليل إلى إعطائك فكرة حول كيفية إدارة نظامك سواء توزيعة Silverblue
أو Kinoite
. بالطبع، هناك العديد من الأشياء الأخرى التي يمكن القيام بها باستخدام ostree
و rpm-ostree
، وبما أن إدارة النظام بهذه الطريقة مختلفة عن التوزيعات التقليدية فستحتاج بعض الممارسة والوقت، كما لا تنس في حالة أردت مزيدا من اﻹطلاع كتابة هذا اﻷمر في الطرفية:
man rpm-ostree
man ostree
لقد وصلنا إلى نهاية هذا المقال، وإذا كان لديك أي شيء تريد إضافته إلى هذا الموضوع أو إذا كانت لديك أسئلة، فأنا في انتظارك في قسم التعليقات أدناه.
بعض الروابط المهمة:
هذا الموضوع فائز بجائزة أسس للكتابة.
هذا الموضوع أحد المواضيع الفائزة بجائزة أسس للكتابة، الجائزة الاولى في العالم العربي للتحفيز الكتابة عن البرمجيات الحرة.
تفاصيل أكثر عن الجائزة

المواضيع الفائزة لشهر مارس 2022


oth_mahammedi
كاتب فائز بجائزة أسس للكتابة.
حساب ماستودون:
oth_mahammedi@mastodon.social