SYSUPDATE.FEATURES(5)

الاسم
sysupdate.features - ملفات تعريف الميزات الاختيارية

موجز

    /etc/sysupdate.d/*.feature
    /run/sysupdate.d/*.feature
    /usr/local/lib/sysupdate.d/*.feature
    /usr/lib/sysupdate.d/*.feature

الوصف

"الميزات الاختيارية" هي وظائف يوفرها 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=
    وصف قصير لهذه الميزة يمكن للبشر قراءته. قد يُستخدم هذا كلصيقة لهذه الميزة، لذا يجب أن يحدد النص الميزة بوضوح من بين الميزات المتوفرة في sysupdate.d/.

    أُضيف في الإصدار 257.

Documentation=
    رابط مسار (URL) يُعرض للمستخدم يوجه إلى توثيق هذه الميزة. يدعم هذا الإعداد توسيع المحددات؛ انظر أدناه للحصول على تفاصيل حول المحددات المدعومة.

    أُضيف في الإصدار 257.

AppStream=
    رابط مسار (URL) لملف XML الخاص بـ كتالوج AppStream[1]. قد يُستخدم هذا بواسطة مراكز البرمجيات (مثل برمجيات جنوم أو استكشف كيدي) لتقديم بيانات وصفية غنية عن هذه الميزة. يتضمن ذلك أسماء العرض، وسجلات التغيير، والأيقونات، والمزيد. يدعم هذا الإعداد توسيع المحددات؛ انظر أدناه للحصول على تفاصيل حول المحددات المدعومة.

    أُضيف في الإصدار 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".

انظر أيضًا

systemd(1), systemd-sysupdate(8), sysupdate.d(5)

ملاحظات

1.  فهرس AppStream
    https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.