table of contents
| SYSUPDATE.FEATURES(5) | sysupdate.features | SYSUPDATE.FEATURES(5) |
الاسم¶
sysupdate.features - ملفات تعريف الميزات الاختيارية
موجز¶
الوصف¶
"الميزات الاختيارية" هي وظائف يوفرها systemd-sysupdate(8)، تسمح للتوزيعة بتعريف مجموعات من تعريفات النقل لـ sysupdate.d(5) والتي يراد تمكينها أو تعطيلها بواسطة مدير النظام.
عند تمكين ميزة ما، ستؤخذ عمليات النقل التابعة لها في الحسبان عند التحقق من التحديثات وتنزيلها، وعند إفراغ المساحة (vacuuming)، وفي جميع الحالات الأخرى. وفي الواقع، ستُحدث عمليات النقل التابعة لميزة ما دائمًا بالتزامن التام مع بقية هدفها. هذا هو الفرق الرئيس بين الميزة الاختيارية ومكون systemd-sysupdate(8). وعند تعطيل ميزة ما، لن تؤخذ عمليات النقل الخاصة بها في الحسبان عند التحقق من التحديثات وتنزيلها، ولكن سيظل systemd-sysupdate يأخذها في الحسبان أثناء إفراغ المساحة وفي الحالات الأخرى التي يحتاج فيها إلى تحديد ملكية موارد النظام المنزلة مسبقًا. سينظف systemd-sysupdate جميع نسخ عمليات النقل الخاصة بالميزة عندما تُعطّل، مما يؤدي فعليًا إلى إزالتها.
تُوصَف الميزات الاختيارية بواسطة ملفات sysupdate.d/*.feature، المعرّفة أدناه. يمكن لعمليات النقل الإعلان عن انتمائها لميزة ما عبر إعداد Features=. تدعم تعريفات الميزات ملفات الإقحام (drop-in)، والتي تُستخدم غالبًا لتخطي إعداد Enabled=. ويمكن أيضًا قناعها (masked) لإخفاء توفر الميزة تمامًا.
يحتوي كل ملف *.feature على قسم واحد: [Feature].
خيارات قسم [FEATURE]¶
يعرّف هذا القسم الخصائص العامة لهذه الميزة.
Description=
أُضيف في الإصدار 257.
Documentation=
أُضيف في الإصدار 257.
AppStream=
أُضيف في الإصدار 257.
Enabled=
أُضيف في الإصدار 257.
المحددات¶
يمكن استخدام المحددات في إعدادات Documentation= و AppStream=. تُفهم التوسيعات التالية:
الجدول 1. المحددات
المتاحة
| المحدد | المعنى | التفاصيل |
| "%a" | المعمارية | سلسلة نصية قصيرة تحدد معمارية النظام المحلي. سلسلة مثل x86 أو x86-64 أو arm64. انظر المعماريات المحددة لـ ConditionArchitecture= في systemd.unit(5) للحصول على قائمة كاملة. |
| "%A" | إصدار صورة نظام التشغيل | معرف إصدار صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_VERSION= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%b" | معرف الإقلاع | معرف الإقلاع للنظام المشغل، منسق كسلسلة نصية. انظر random(4) لمزيد من المعلومات. |
| "%B" | معرف بناء نظام التشغيل | معرف بناء نظام التشغيل للنظام المشغل، كما يُقرأ من حقل BUILD_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%H" | اسم المضيف | اسم مضيف النظام المشغل. |
| "%l" | اسم المضيف القصير | اسم مضيف النظام المشغل، مقتطعًا عند النقطة الأولى لإزالة أي مكون نطاق. |
| "%m" | معرف الآلة | معرف الجهاز للنظام المشغل، منسق كسلسلة نصية. انظر machine-id(5) لمزيد من المعلومات. |
| "%M" | معرف صورة نظام التشغيل | معرف صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%o" | معرف نظام التشغيل | معرف نظام التشغيل للنظام المشغل، كما يُقرأ من حقل ID= في /etc/os-release. انظر os-release(5) لمزيد من المعلومات. |
| "%v" | إصدار النواة | مطابق لمخرجات uname -r. |
| "%w" | معرف إصدار نظام التشغيل | معرف إصدار نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VERSION_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%W" | معرف نوع نظام التشغيل | معرف تنويعة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VARIANT_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%T" | مجلد للملفات المؤقتة | هذا إما /tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.) |
| "%V" | مجلد للملفات المؤقتة الأكبر حجمًا والمستمرة | هذا إما /var/tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.) |
| "%%" | علامة مئوية مفردة | استخدم "%%" بدلاً من "%" لتحديد علامة مئوية مفردة. |
أمثلة¶
مثال 1. أدوات التطوير لنظام التشغيل المعتمد على الصور
سنستخدم نظام التشغيل الافتراضي "foobarOS" الموصوف في sysupdate.d(5) كمثال لنظام التشغيل الأساسي لدينا. لا تحتاج الغالبية العظمى من مستخدمي foobarOS إلى وجود مجمع (compiler)، ونظام بناء، ومنقح (debugger)، وأدوات تطوير أخرى من هذا القبيل لتكون جزءًا من نظام تشغيلهم. ومع ذلك، يحتاج مطورو foobarOS أنفسهم إلى توفر أدوات البناء هذه. لذلك، يحتاج foobarOS إلى توفير صورة امتداد للنظام (انظر systemd-sysext(8)) تحتوي على أدوات التطوير هذه، ويجب تحديث هذه الصورة بالتزامن التام مع نظام التشغيل الأساسي التحتي. هذه حالة استخدام ممتازة لميزة نظام تشغيل اختيارية، لذا دعنا نعرّف واحدة:
# /usr/lib/sysupdate.d/devel.feature [Feature] Description=Development Tools Documentation=https://developer.example.com/foobarOS/getting-started Enabled=false
يعرّف ما ورد أعلاه ميزة "devel"، ويُعطّلها مبدئيًا. الآن دعنا نعرّف عملية نقل مرتبطة بهذه الميزة:
# /usr/lib/sysupdate.d/50-devel.transfer [Transfer] Features=devel ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_devel.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_devel.raw Mode=0444 InstancesMax=2
باستخدام هذين الملفين، أنشأنا ميزة تسمى "devel" والتي، عند تمكينها، ستنزل وتفك ضغط الإصدار المناسب من "https://download.example.com/foobarOS_@v_devel.raw.xz" إلى "/var/lib/extensions/foobarOS_@v_devel.raw" أثناء كل تحديث لنظام التشغيل.
يمكن لمطوري foobarOS تمكين ميزة "devel" على محطات عملهم عن طريق إنشاء ملف الإقحام التالي:
# /etc/sysupdate.d/devel.feature.d/enable.conf [Feature] Enabled=true
مثال 2. برامج التشغيل احتكارية الملكية
افترض أن العديد من مستخدمي foobarOS لديهم معالج رسوميات (GPU) مصنع من قبل شركة MVISUAL. ونظرًا لقلة التوثيق وصعوبة الهندسة العكسية للعتاد، فإن برامج التشغيل مفتوحة المصدر لمعالجات الرسوميات MVISUAL غير قادرة على الاستفادة الصحيحة من أداء الرسوميات والحوسبة المتاح. توفر MVISUAL برنامج تشغيل احتكاريًا قابلًا لإعادة التوزيع لبطاقاتها، ويوزعها مطورو foobarOS لتلبية احتياجات مستخدميهم.
يتكون برنامج تشغيل MVISUAL من عدة أجزاء مختلفة يجب تثبيتها لكي يعمل: إضافة UKI لاضبط سطر الأوامر للنواة، وصورة امتداد نظام initrd لإضافة وحدة نواة MVISUAL إلى initrd، وصورة امتداد نظام عادية لإضافة برامج تشغيل OpenGL و Vulkan الاحتكارية لفضاء المستخدم. ينبغي قفل إصدارات كل هذه الأجزاء لتتطابق مع نظام التشغيل الرئيس.
لنبدأ بتعريف ميزة اختيارية باسم "mvisual-driver":
# /usr/lib/sysupdate.d/mvisual-driver.feature [Feature] Description=MVISUAL Proprietary GPU Driver Documentation=https://support.example.com/foobarOS/mvisual AppStream=https://metadata.example.com/mvisual-driver-%A.xml.gz
لاحظ أننا نعرف بيانات AppStream الوصفية لهذه الميزة، لأننا نريد لمراكز البرامج عرضها على المستخدمين النهائيين. بعد ذلك، دعنا نعرف التحويلات المقابلة:
# /usr/lib/sysupdate.d/50-mvisual-userspace.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_userspace.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_mvisual.raw Mode=0444 InstancesMax=2
# /usr/lib/sysupdate.d/70-mvisual-initrd.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_initrd.raw.xz [Target] Type=regular-file Path=/EFI/Linux PathRelativeTo=boot MatchPattern=foobarOS_@v.efi.extra.d/foobarOS_mvisual.raw Mode=0444 InstancesMax=2
# /usr/lib/sysupdate.d/90-mvisual-addon.transfer [Transfer] Features=mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_mvisual_addon.efi.xz [Target] Type=regular-file Path=/EFI/Linux PathRelativeTo=boot MatchPattern=foobarOS_@v.efi.extra.d/foobarOS_mvisual.addon.efi Mode=0444 InstancesMax=2
مثال 3. الميزات المتقاطعة
افترض أن MVISUAL تصدر أدوات خاصة لمساعدة مطور توزيعة في استكشاف أعطال برنامج التشغيل الخاص بهم. دعنا نعرف تحويلاً:
# /usr/lib/sysupdate.d/50-mvisual-debugger.transfer [Transfer] RequisiteFeatures=devel mvisual-driver ProtectVersion=%A [Source] Type=url-file Path=https://download.example.com/ MatchPattern=foobarOS_@v_devel.raw.xz [Target] Type=regular-file Path=/var/lib/extensions MatchPattern=foobarOS_@v_devel.raw Mode=0444 InstancesMax=2
سيُستخدم هذا التحويل فقط إذا تم تفعيل كلتا الميزتين "devel" و"mvisual-driver".
انظر أيضًا¶
ملاحظات¶
- 1.
- فهرس AppStream
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 260.1 |