OS-RELEASE(5)

الاسم
os-release، initrd-release، extension-release - تعريف نظام التشغيل

موجز

    /etc/os-release
    /usr/lib/os-release
    /etc/initrd-release
    /usr/lib/extension-release.d/extension-release.IMAGE

الوصف

يحتوي الملفان /etc/os-release و /usr/lib/os-release على بيانات تعريف نظام التشغيل.

تنسيق os-release هو قائمة مفصولة بأسطر جديدة من تعيينات متغيرات متوافقة مع الصدفة تشبه البيئة. من الممكن استيراد الإعدادات من نصوص Bourne shell، ولكن، بعيدًا عن مجرد تعيينات المتغيرات، لا تُدعم أي ميزات صدفة (وهذا يعني أن توسيع المتغير غير مدعوم صراحة)، مما يسمح للتطبيقات بقراءة الملف دون تنفيذ محرك تنفيذ متوافق مع الصدفة. يجب وضع قيم تعيين المتغيرات بين علامتي اقتباس مزدوجة أو مفردة إذا كانت تتضمن مسافات أو فاصلة منقوطة أو أحرفًا خاصة أخرى خارج A–Z، a–z، 0–9. (يمكن أيضًا وضع التعيينات التي لا تتضمن هذه الأحرف الخاصة بين علامتي اقتباس، ولكن هذا اختياري.) يجب الهروب من الأحرف الخاصة بالصدفة ("$"، علامات الاقتباس، الخط المائل العكسي، علامة التنصيص الخلفية) باستخدام الخطوط المائلة العكسية، وفقًا لنمط الصدفة. يجب أن تكون جميع السلاسل بترميز UTF-8، ويجب عدم استخدام الأحرف غير القابلة للطباعة. لا يُدعم دمج سلاسل متعددة مقتبسة بشكل فردي. تُعامل الأسطر التي تبدأ بـ "#" كتعليقات. يُسمح بالأسطر الفارغة ويتم تجاهلها.

الملف /etc/os-release له أولوية على /usr/lib/os-release. يجب على التطبيقات التحقق من الأول، واستخدام بياناته حصريًا إذا كان موجودًا، والرجوع فقط إلى /usr/lib/os-release إذا كان مفقودًا. يجب على التطبيقات عدم دمج البيانات من كلا الملفين. /usr/lib/os-release هو المكان الموصى به لتخزين معلومات إصدار نظام التشغيل كجزء من أشجار البائعين. يجب أن يكون /etc/os-release رابطًا رمزيًا نسبيًا إلى /usr/lib/os-release، لتوفير التوافق مع التطبيقات التي تنظر فقط إلى /etc/. الرابط الرمزي النسبي بدلاً من الرابط الرمزي المطلق ضروري لتجنب كسر الرابط في بيئة chroot أو initrd.

يحتوي os-release على بيانات يحددها بائع نظام التشغيل ويجب عمومًا عدم تغييرها من قبل المسؤول.

نظرًا لأن هذا الملف يرمز فقط الأسماء والمعرفات، فلا يجب توطينه.

قد يكون الملفان /etc/os-release و /usr/lib/os-release روابط رمزية لملفات أخرى، ولكن من المهم أن يكون الملف متاحًا من بداية الإقلاع المبكرة، وبالتالي يجب أن يكون موجودًا على نظام الملفات الجذر.

يجب ألا يحتوي os-release على مفاتيح متكررة. ومع ذلك، يجب على القارئ اختيار الإدخالات لاحقًا في الملف في حالة التكرار، على غرار كيفية قيام الصدفة باستيراد الملف. قد يحذر القارئ من الإدخالات المتكررة.

للحصول على مبرر أطول لـ os-release، يُرجى الرجوع إلى إعلان /etc/os-release[1].

  /etc/initrd-release

في initrd[2] و exitrd، يلعب /etc/initrd-release نفس دور os-release في النظام الرئيسي. بالإضافة إلى ذلك، يعني وجود هذا الملف أن النظام في مرحلة initrd/exitrd. يجب ربط /etc/os-release رمزيًا بـ /etc/initrd-release (أو العكس)، حتى تعمل البرامج التي تبحث فقط عن /etc/os-release (كما هو موضح أعلاه) بشكل صحيح.

يجب فهم باقي هذا المستند الذي يتحدث عن os-release على أنه ينطبق على initrd-release أيضًا.

  /usr/lib/extension-release.d/extension-release.IMAGE

يلعب /usr/lib/extension-release.d/extension-release.IMAGE نفس دور os-release للنظام الرئيسي لصور الامتداد، ويتبع بناء الجملة والقواعد كما هو موضح في صفحة الخدمات المحمولة[3]. الغرض من هذا الملف هو تعريف الامتداد والسماح لنظام التشغيل بالتحقق من أن صورة الامتداد تطابق نظام التشغيل الأساسي. يتم تنفيذ هذا عادةً عن طريق التحقق من أن خيار الامتداد ID= إما يطابق خيار المضيف ID= أو يتم تضمينه في خيار المضيف ID_LIKE=، وإما أن SYSEXT_LEVEL= موجود ويتطابق أيضًا، أو إذا لم يكن موجودًا، فإن VERSION_ID= موجود ويتطابق. يضمن هذا التوافق بين ABI/API بين الطبقات ويمنع دمج صورة غير متوافقة في تراكب.

من أجل تعريف صورة الامتداد نفسها، يمكن إضافة نفس الحقول المحددة أدناه إلى ملف extension-release ببادئة SYSEXT_ (لإزالة الغموض عن الحقول المستخدمة للمطابقة على الصورة الأساسية). على سبيل المثال: SYSEXT_ID=myext، SYSEXT_VERSION_ID=1.2.3.

في اسم ملف extension-release.IMAGE، يجب أن يتطابق الجزء IMAGE تمامًا مع اسم ملف الصورة المحتوية مع إزالة اللاحقة. في حالة عدم القدرة على ضمان أن اسم ملف الصورة مستقر ولا يتغير بين مرحلتي البناء والنشر، يمكن تخفيف هذا الفحص: إذا كان ملف واحد بالضبط يتطابق اسمه مع "extension-release.*" موجودًا في هذا الدليل، وكان الملف موسومًا بـ user.extension-release.strict xattr(7) مضبوطًا على السلسلة "0"، فسيتم استخدامه بدلاً من ذلك.

يجب فهم باقي هذا المستند الذي يتحدث عن os-release على أنه ينطبق على extension-release أيضًا.

الخيارات

يمكن تعيين معلمات تعريف نظام التشغيل التالية باستخدام os-release:

  معلومات عامة تحدد نظام التشغيل

NAME=
    سلسلة تحدد نظام التشغيل، بدون مكون إصدار، ومناسبة للعرض على المستخدم. إذا لم يتم تعيينها، يمكن استخدام مبدئي "NAME=Linux".

    أمثلة: "NAME=Fedora"، "NAME="Debian GNU/Linux"".

ID=
    سلسلة بأحرف صغيرة (بدون مسافات أو أحرف أخرى خارج 0–9، a–z، "."، "_" و "-") تحدد نظام التشغيل، باستثناء أي معلومات إصدار ومناسبة للمعالجة بواسطة النصوص البرمجية أو الاستخدام في أسماء الملفات المولدة. إذا لم يتم تعيينها، يمكن استخدام مبدئي "ID=linux". لاحظ أنه على الرغم من أن هذه السلسلة قد لا تتضمن أحرفًا تتطلب اقتباس الصدفة، إلا أنه يمكن استخدام الاقتباس مع ذلك.

    أمثلة: "ID=fedora"، "ID=debian".

ID_LIKE=
    قائمة مفصولة بمسافات من معرفات نظام التشغيل بنفس صيغة إعداد ID=. يجب أن تُدرج معرفات أنظمة التشغيل المرتبطة ارتباطًا وثيقًا بنظام التشغيل المحلي من حيث التعبئة وواجهات البرمجة، على سبيل المثال إدراج معرف نظام تشغيل واحد أو أكثر مشتق منه نظام التشغيل المحلي. يجب على نظام التشغيل عمومًا إدراج معرفات أنظمة التشغيل الأخرى المشتق منها فقط، وليس أي أنظمة تشغيل مشتقة منه، على الرغم من أن العلاقات المتناظرة ممكنة. يجب على نصوص البناء وما شابهها التحقق من هذا المتغير إذا احتاجت إلى تحديد نظام التشغيل المحلي ولم يتم التعرف على قيمة ID=. يجب إدراج أنظمة التشغيل بترتيب مدى ارتباط نظام التشغيل المحلي بتلك المدرجة، بدءًا من الأقرب. هذا الحقل اختياري.

    أمثلة: بالنسبة لنظام تشغيل مع "ID=centos"، سيكون تعيين "ID_LIKE="rhel fedora"" مناسبًا. بالنسبة لنظام تشغيل مع "ID=ubuntu"، يكون تعيين "ID_LIKE=debian" مناسبًا.

PRETTY_NAME=
    اسم نظام تشغيل جميل بتنسيق مناسب للعرض على المستخدم. قد يحتوي أو لا يحتوي على اسم رمزي للإصدار أو إصدار نظام تشغيل من نوع ما، حسب المناسب. إذا لم يتم تعيينه، يمكن استخدام مبدئي "PRETTY_NAME="Linux"".

    مثال: "PRETTY_NAME="Fedora 17 (Beefy Miracle)""

FANCY_NAME=
    مشابه لـ PRETTY_NAME=، لكن قد يحتوي على تسلسلات ANSI وأحرف UTF-8 الفاخرة مثل الرموز التعبيرية. إذا تم تعريفه، يُفضل استخدامه عند عرض اسم نظام التشغيل على محاكيات الطرفية الحديثة. إذا لم يدعم محاكي الطرفية الرموز التعبيرية، يجب عرض PRETTY_NAME= بدلاً من ذلك، ربما مع تلوين ANSI_COLOR=. استخدم "\e033" لترميز حرف ESC و"\e\e" لترميز حرف الخط المائل العكسي.

    على عكس PRETTY_NAME=، يجب ألا يحتوي هذا الحقل على معلومات موجودة في حقول أخرى، خاصة الإصدار (المحدد بالفعل في VERSION=) أو الاسم الرمزي (المحدد بالفعل في VERSION_CODENAME=).

    مثال: "FANCY_NAME="🍅 \e033[31mTomato\e033[0;1mOS\e033[0m""

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

CPE_NAME=
    اسم CPE لنظام التشغيل، بصيغة ربط URI، وفقًا لـ Common Platform Enumeration Specification[4] كما اقترحته NIST. هذا الحقل اختياري.

    مثال: "CPE_NAME="cpe:/o:fedoraproject:fedora:17""

VARIANT=
    سلسلة تحدد متغيرًا أو إصدارًا معينًا من نظام التشغيل مناسبًا للعرض على المستخدم. يمكن استخدام هذا الحقل لإعلام المستخدم بأن تكوين هذا النظام خاضع لمجموعة محددة من القواعد المتباينة أو إعدادات التكوين المبدئية. هذا الحقل اختياري وقد لا يتم تنفيذه على جميع الأنظمة.

    أمثلة: "VARIANT="Server Edition""، "VARIANT="Smart Refrigerator Edition"".

    ملاحظة: هذا الحقل لأغراض العرض فقط. يجب استخدام حقل VARIANT_ID لاتخاذ قرارات برمجية.

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

VARIANT_ID=
    سلسلة بأحرف صغيرة (بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و"-")، تحدد متغيرًا أو إصدارًا معينًا من نظام التشغيل. قد يتم تفسير ذلك بواسطة حزم أخرى لتحديد تكوين مبدئي متباين. هذا الحقل اختياري وقد لا يتم تنفيذه على جميع الأنظمة.

    أمثلة: "VARIANT_ID=server"، "VARIANT_ID=embedded".

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

  معلومات حول إصدار نظام التشغيل

VERSION=
    سلسلة تحدد إصدار نظام التشغيل، باستثناء أي معلومات عن اسم نظام التشغيل، وربما تتضمن اسمًا رمزيًا للإصدار، ومناسبة للعرض على المستخدم. هذا الحقل اختياري.

    أمثلة: "VERSION=17"، "VERSION="17 (Beefy Miracle)"".

VERSION_ID=
    سلسلة بأحرف صغيرة (رقمية في الغالب، بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و"-") تحدد إصدار نظام التشغيل، باستثناء أي معلومات عن اسم نظام التشغيل أو اسم رمزي للإصدار، ومناسبة للمعالجة بواسطة النصوص البرمجية أو الاستخدام في أسماء الملفات المُنشأة. هذا الحقل اختياري.

    أمثلة: "VERSION_ID=17"، "VERSION_ID=11.04".

VERSION_CODENAME=
    سلسلة أحرف صغيرة (بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و "-") تحدد الاسم الرمزي لإصدار نظام التشغيل، باستثناء أي معلومات عن اسم نظام التشغيل أو رقم الإصدار، ومناسبة للمعالجة بواسطة البرامج النصية أو الاستخدام في أسماء الملفات المُنشأة. هذا الحقل اختياري وقد لا يُنفذ على جميع الأنظمة.

    أمثلة: "VERSION_CODENAME=buster"، "VERSION_CODENAME=xenial".

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

BUILD_ID=
    سلسلة تحدد بشكل فريد صورة النظام المستخدمة أصلاً كقاعدة للتثبيت. في معظم الحالات، يتم تحديث VERSION_ID أو IMAGE_ID+IMAGE_VERSION عند استبدال صورة النظام بأكملها أثناء التحديث. يمكن استخدام BUILD_ID في التوزيعات حيث يكون إصدار صورة التثبيت الأصلية مهمًا: سيتغير VERSION_ID أثناء تحديثات النظام التدريجية، لكن BUILD_ID لن يتغير. هذا الحقل اختياري.

    أمثلة: "BUILD_ID="2013-03-20.3""، "BUILD_ID=201303203".

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

IMAGE_ID=
    سلسلة أحرف صغيرة (بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و "-")، تحدد صورة معينة لنظام التشغيل. يُفترض استخدامها للبيئات حيث تُحضر صور نظام التشغيل وتُبنى وتُشحن وتُحدث كصور شاملة ومتسقة لنظام التشغيل. هذا الحقل اختياري وقد لا يُنفذ على جميع الأنظمة، خاصة تلك التي لا تُدار عبر الصور بل تُجمع وتُحدث من حزم فردية وعلى النظام المحلي.

    أمثلة: "IMAGE_ID=vendorx-cashier-system"، "IMAGE_ID=netbook-image".

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

IMAGE_VERSION=
    سلسلة أحرف صغيرة (غالبًا رقمية، بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و "-") تحدد إصدار صورة نظام التشغيل. يُفترض استخدامها مع IMAGE_ID الموصوف أعلاه، لتمييز الإصدارات المختلفة لنفس الصورة.

    أمثلة: "IMAGE_VERSION=33"، "IMAGE_VERSION=47.1rc1".

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

RELEASE_TYPE=
    سلسلة أحرف صغيرة (بدون مسافات أو أحرف أخرى خارج 0-9، a-z، "."، "_" و "-")، تصف نوع الإصدار الذي يمثله هذا الإصدار من نظام التشغيل. القيم المعروفة تتبع:

        • "stable" مخصص للإصدارات العادية للنظام، المناسبة للاستخدام الإنتاجي. بشكل عام، تصبح الإصدارات المستقرة منتهية الصلاحية بعد وقت قصير من صدور الإصدار المستقر الرئيسي التالي، على الرغم من أن هذا قد لا يكون الحال إذا، على سبيل المثال، اعتمد توزيع نموذج إصدار متداول وكان لا يزال جاهزًا للإنتاج. تشمل الأمثلة فيدورا 40، أوبونتو 23.10، أوبن سوزي تامبلويد، وأرتش لينكس.

        • "lts" مخصص لإصدارات الدعم طويل الأمد للنظام، المناسبة للاستخدام الإنتاجي والمدعومة لفترة زمنية ممتدة. بشكل عام، تستمر إصدارات LTS في تلقي الدعم حتى إذا توفرت إصدارات رئيسية أحدث من التوزيعة. تشمل الأمثلة أوبونتو 24.04، دبيان 12 بوكوورم، وRHEL 9.4.

        • "development" مخصص للإصدارات غير المستقرة من النظام، غير المناسبة للاستخدام الإنتاجي، مثل إصدارات ألفا أو بيتا أو الإصدارات المتداولة غير المستقرة. تشمل الأمثلة فيدورا روهيد، دبيان تيستينغ، فيدورا 40 بيتا، وجنوم أو إس نايتلي.

        • "experiment" مخصص للبنى التجريبية للنظام، التي تُنشأ خصيصًا لاختبار ميزة قيد التطوير. يُقصد استخدامها مع EXPERIMENT=.

    إذا لم يُضبط، أو كانت القيمة غير معروفة، يُفترض أن الإصدار هو "stable".

    أمثلة: "RELEASE_TYPE=development"، "RELEASE_TYPE=lts".

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

للتلخيص: إذا كانت تحديثات الصورة تُبنى وتُشحن كوحدات شاملة، فإن IMAGE_ID+IMAGE_VERSION هو الأنسب. بخلاف ذلك، إذا استبدلت التحديثات في النهاية المحتويات المثبتة سابقًا بالكامل، كما في توزيعة ثنائية نموذجية، يجب استخدام VERSION_ID لتحديد الإصدارات الرئيسية لنظام التشغيل. يمكن استخدام BUILD_ID بدلاً من أو بالإضافة إلى VERSION_ID عندما يكون إصدار صورة النظام الأصلية مهمًا.

  معلومات العرض والروابط

HOME_URL=, DOCUMENTATION_URL=, SUPPORT_URL=, BUG_REPORT_URL=, PRIVACY_POLICY_URL=
    روابط لموارد على الإنترنت متعلقة بنظام التشغيل. يجب أن يشير HOME_URL= إلى الصفحة الرئيسية لنظام التشغيل، أو بدلاً من ذلك بعض الصفحات الرئيسية للإصدار المحدد من نظام التشغيل. يجب أن يشير DOCUMENTATION_URL= إلى صفحة التوثيق الرئيسية لنظام التشغيل هذا. يجب أن يشير SUPPORT_URL= إلى صفحة الدعم الرئيسية لنظام التشغيل، إذا كانت موجودة. هذا مخصص بشكل أساسي لأنظمة التشغيل التي يوفر البائعون دعمًا لها. يجب أن يشير BUG_REPORT_URL= إلى صفحة الإبلاغ عن الأخطاء الرئيسية لنظام التشغيل، إذا كانت موجودة. هذا مخصص بشكل أساسي لأنظمة التشغيل التي تعتمد على ضمان الجودة المجتمعي. يجب أن يشير PRIVACY_POLICY_URL= إلى صفحة سياسة الخصوصية الرئيسية لنظام التشغيل، إذا كانت موجودة. هذه الإعدادات اختيارية، وتوفير بعضها فقط أمر شائع. يُقصد عرض عناوين URL هذه في واجهات المستخدم "حول هذا النظام" خلف روابط بعناوين مثل "حول نظام التشغيل هذا"، "الحصول على الدعم"، "الإبلاغ عن خطأ"، أو "سياسة الخصوصية". يجب أن تكون القيم بتنسيق RFC3986[5]، ويجب أن تكون عناوين URL "http:" أو "https:"، وربما "mailto:" أو "tel:". يجب إدراج عنوان URL واحد فقط في كل إعداد. إذا كانت هناك حاجة للإشارة إلى موارد متعددة، يُوصى بتوفير صفحة هبوط على الإنترنت تربط جميع الموارد المتاحة.

    أمثلة: "HOME_URL="https://fedoraproject.org/"", "BUG_REPORT_URL="https://bugzilla.redhat.com/"".

SUPPORT_END=
    التاريخ الذي ينتهي فيه الدعم لهذا الإصدار من نظام التشغيل. (ما يعنيه بالضبط "نقص الدعم" يختلف بين البائعين، لكن بشكل عام يجب على المستخدمين افتراض أن التحديثات، بما في ذلك إصلاحات الأمان، لن تُقدم.) القيمة هي تاريخ بتنسيق ISO 8601 "YYYY-MM-DD"، وتحدد اليوم الأول الذي لا يُقدم فيه الدعم.

    على سبيل المثال، "SUPPORT_END=2001-01-01" يعني أن النظام كان مدعومًا حتى نهاية اليوم الأخير من الألفية السابقة.

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

LOGO=
    سلسلة تحدد اسم أيقونة كما هو معرف بواسطة مواصفات سمة الأيقونات freedesktop.org[6]. يمكن استخدامها بواسطة التطبيقات الرسومية لعرض شعار نظام التشغيل أو الموزع. هذا الحقل اختياري وقد لا يكون مطبقًا على جميع الأنظمة.

    أمثلة: "LOGO=fedora-logo"، "LOGO=distributor-logo-opensuse"

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

ANSI_COLOR=
    لون نص عرض (المقدمة) مقترح عند عرض اسم نظام التشغيل على وحدة التحكم. يجب تحديده كسلسلة مناسبة للإدراج في رمز الهروب ESC [ m ANSI/ECMA-48 لتعيين العرض الرسومي. هذا الحقل اختياري.

    أمثلة: "ANSI_COLOR="0;31"" للأحمر، "ANSI_COLOR="1;34"" للأزرق الفاتح، أو "ANSI_COLOR="0;38;2;60;110;180"" للأزرق فيدورا.

ANSI_COLOR_REVERSE=
    مشابه لـ ANSI_COLOR=، لكن يجب أن يرمز لون العرض المطلوب كلون خلفية، مع لون مقدمة مناسب. يمكن استخدامه بواسطة تطبيقات وحدة التحكم لفصل عناصر واجهة "كروم" عن محتويات الطرفية الرئيسية. هذا الحقل اختياري.

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

VENDOR_NAME=
    اسم بائع نظام التشغيل. هذا هو اسم المنظمة أو الشركة التي تنتج نظام التشغيل. هذا الحقل اختياري.

    يهدف هذا الاسم إلى عرضه في واجهات "حول هذا النظام" أو واجهات تحديث البرامج عند الحاجة لتمييز بائع نظام التشغيل عن نظام التشغيل نفسه. يهدف ليكون مقروءًا بشريًا.

    أمثلة: "VENDOR_NAME="Fedora Project"" لفيدورا لينكس، "VENDOR_NAME="Canonical"" لأوبونتو.

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

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

    يجب أن تكون القيمة بتنسيق RFC3986[5]، ويجب أن تكون عناوين URL "http:" أو "https:". يجب إدراج عنوان URL واحد فقط في الإعداد.

    أمثلة: "VENDOR_URL="https://fedoraproject.org/"", "VENDOR_URL="https://canonical.com/"".

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

EXPERIMENT=
    وصف قابل للعرض بشريًا لما يجعل هذا البناء من نظام التشغيل تجريبيًا. هذا الحقل اختياري. يجب تعيين حقل RELEASE_TYPE إلى "experiment" إذا تم تعيين هذا الحقل، وإلا يجب على العملاء تجاهل هذا الحقل.

    يهدف هذا الوصف إلى عرضه في وقت تثبيت النظام، أو في واجهات "حول هذا النظام"، لتحذير المستخدم من أنه يقوم بتثبيت/تشغيل بناء تجريبي لنظام التشغيل. إذا كان RELEASE_TYPE هو "experiment" لكن هذا الحقل غير معين، يجب على الواجهة أن تحذر المستخدم، لكنها لن تكون قادرة على شرح ما هو تجريبي بالضبط في البناء الحالي لنظام التشغيل.

    أمثلة: "EXPERIMENT="Switch to DNF5"" لبناء تجريبي لفيدورا لينكس مصنوع لاختبار DNF5، "EXPERIMENT="Port to Apple M3 chip"" لبنى تجريبية من Asahi Linux المنقولة إلى Apple M3 SoC، "EXPERIMENT="Mutter !1441: Dynamic triple/double buffering (v4)"" لبنى من GNOME OS التي أنشأها CI الخاص بـ Mutter لطلب الدمج !1441.

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

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

    يجب أن تكون القيمة بتنسيق RFC3986[5]، ويجب أن تكون عناوين URL "http:" أو "https:". يجب إدراج عنوان URL واحد فقط في الإعداد.

    أمثلة، مقابلة للأمثلة أعلاه في EXPERIMENT=: "EXPERIMENT_URL="https://fedoraproject.org/wiki/Changes/SwitchToDnf5"", "EXPERIMENT_URL="https://github.com/AsahiLinux/docs/wiki/M3-Series-Feature-Support"", "EXPERIMENT_URL="https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441"".

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

  المبدئيات والبيانات الوصفية على مستوى التوزيعة

DEFAULT_HOSTNAME=
    سلسلة تحدد اسم المضيف إذا كان hostname(5) غير موجود ولا يوجد مصدر تهيئة آخر يحدد اسم المضيف. يجب أن تكون إما تسمية DNS واحدة (سلسلة مكونة من أحرف ASCII 7-بت صغيرة ولا تحتوي على مسافات أو نقاط، محدودة بالتنسيق المسموح به لتسميات أسماء نطاقات DNS)، أو سلسلة من هذه التسميات مفصولة بنقاط فردية تشكل FQDN صالح لـ DNS. يجب أن يكون اسم المضيف على الأكثر 64 حرفًا، وهو حد لينكس (DNS يسمح بأسماء أطول).

    إذا ظهرت علامة الاستفهام "?" في اسم المضيف، فسيُستبدل آليًا برمز ست عشري مشتق من machine-id(5) عند التطبيق، بشكل آمن وحتمي عبر التجزئة التعموية. مثال: ستُوسع "foobar-????-????" آليًا إلى "foobar-92a9-061c" أو ما شابه، اعتمادًا على معرف الجهاز المحلي.

    انظر org.freedesktop.hostname1(5) لوصف لكيفية تحديد systemd-hostnamed.service(8) لاسم المضيف الاحتياطي.

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

ARCHITECTURE=
    سلسلة تحدد بنية وحدة المعالجة المركزية التي تتطلبها ثنائيات مساحة المستخدم. معرفات البنية هي نفسها لـ ConditionArchitecture= الموصوفة في systemd.unit(5). الحقل اختياري ويجب استخدامه فقط عندما تكون بنية واحدة مدعومة. قد يوفر معلومات زائدة عن الحاجة عند استخدامه في قسم GPT بنوع GUID يرمز البنية بالفعل. إذا لم يكن الأمر كذلك، يجب تحديد البنية في، على سبيل المثال، صورة امتداد، لمنع مضيف غير متوافق من تحميلها.

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

SYSEXT_LEVEL=
    سلسلة أحرف صغيرة (غالبًا رقمية، بدون مسافات أو أحرف أخرى خارج 0–9، a–z، "."، "_" و"-") تحدد مستوى دعم إضافات نظام التشغيل، للإشارة إلى صور الإضافات المدعومة. انظر /usr/lib/extension-release.d/extension-release.IMAGE، initrd[2] وsystemd-sysext(8)) لمزيد من المعلومات.

    أمثلة: "SYSEXT_LEVEL=2"، "SYSEXT_LEVEL=15.14".

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

CONFEXT_LEVEL=
    نفس SYSEXT_LEVEL= دلاليًا ولكن لصور confext. انظر /etc/extension-release.d/extension-release.IMAGE لمزيد من المعلومات.

    أمثلة: "CONFEXT_LEVEL=2"، "CONFEXT_LEVEL=15.14".

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

SYSEXT_SCOPE=
    يأخذ قائمة مفصولة بمسافات من سلسلة واحدة أو أكثر من السلاسل "system" و"initrd" و"portable". هذا الحقل مدعوم فقط في ملفات extension-release.d/ ويشير إلى البيئات التي تنطبق عليها إضافة النظام: أي الأنظمة العادية، أو initrds وexitrds، أو صور الخدمات المحمولة. إذا لم يُحدد، يُفترض "SYSEXT_SCOPE=system portable"، أي أي إضافة نظام بدون هذا الحقل تنطبق على الأنظمة العادية وبيئات الخدمات المحمولة، ولكن ليس على بيئات initrd/exitrd.

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

CONFEXT_SCOPE=
    نفس SYSEXT_SCOPE= دلاليًا ولكن لصور confext.

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

PORTABLE_PREFIXES=
    يأخذ قائمة مفصولة بمسافات من سلسلة بادئة مطابقة صالحة واحدة أو أكثر لمنطق الخدمات المحمولة[3]. يخدم هذا الحقل غرضين: فهو إعلامي، يحدد صور الخدمات المحمولة على هذا النحو (وبالتالي يسمح بتمييزها عن صور نظام التشغيل الأخرى، مثل صور النظام القابلة للإقلاع). يُستخدم أيضًا عند إرفاق صورة خدمة محمولة: تُفحص بادئة الخدمة المحمولة المحددة أو المفترضة مقابل القائمة المحددة هنا، لفرض قيود على كيفية إرفاق الصور بالنظام.

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

PORTABLE_SCOPE=
    يحدد نطاق الخدمة المحمولة. يأخذ واحدًا من "system" أو "user" أو "any". عند تعيينه إلى "system"، يمكن إرفاق الخدمة المحمولة فقط بمثيل النظام لـ systemd-portabled. عند تعيينه إلى "user"، يمكن إرفاق الخدمة المحمولة فقط بمثيل المستخدم لـ systemd-portabled. عند تعيينه إلى "any"، يمكن إرفاق الخدمة المحمولة بمثيلي النظام والمستخدم لـ systemd-portabled. إذا لم يُحدد، يُفترض "PORTABLE_SCOPE=system".

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

  ملاحظات

إذا كنت تستخدم هذا الملف لتحديد نظام التشغيل أو إصدار معين منه، استخدم حقلي ID وVERSION_ID، وربما ID_LIKE كبديل احتياطي لـ ID. عند البحث عن سلسلة تعريف نظام تشغيل لعرضها على المستخدم، استخدم حقل PRETTY_NAME.

لاحظ أن بائعي أنظمة التشغيل قد يختارون عدم توفير معلومات الإصدار، على سبيل المثال لاستيعاب الإصدارات المتداولة. في هذه الحالة، قد يكون VERSION وVERSION_ID غير معينين. لا ينبغي للتطبيقات الاعتماد على تعيين هذه الحقول.

قد يوسع بائعو أنظمة التشغيل تنسيق الملف ويقدمون حقولًا جديدة. يُوصى بشدة ببادئة الحقول الجديدة باسم خاص بنظام التشغيل لتجنب تضارب الأسماء. يجب على التطبيقات التي تقرأ هذا الملف تجاهل الحقول غير المعروفة.

مثال: "DEBIAN_BTS="debbugs://bugs.debian.org/"".

قد يجعل مديرو وقت تشغيل الحاويات وصناديق الرمل بيانات تعريف المضيف متاحة للتطبيقات من خلال توفير /etc/os-release للمضيف (إذا كان متاحًا، وإلا /usr/lib/os-release كبديل احتياطي) كـ /run/host/os-release.

أمثلة

مثال 1. ملف os-release لـ Fedora Workstation

    NAME=Fedora
    VERSION="32 (Workstation Edition)"
    ID=fedora
    VERSION_ID=32
    PRETTY_NAME="Fedora 32 (Workstation Edition)"
    ANSI_COLOR="0;38;2;60;110;180"
    LOGO=fedora-logo-icon
    CPE_NAME="cpe:/o:fedoraproject:fedora:32"
    HOME_URL="https://fedoraproject.org/"
    DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/"
    SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
    BUG_REPORT_URL="https://bugzilla.redhat.com/"
    REDHAT_BUGZILLA_PRODUCT="Fedora"
    REDHAT_BUGZILLA_PRODUCT_VERSION=32
    REDHAT_SUPPORT_PRODUCT="Fedora"
    REDHAT_SUPPORT_PRODUCT_VERSION=32
    PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
    VARIANT="Workstation Edition"
    VARIANT_ID=workstation

مثال 2. ملف extension-release لإضافة لـ Fedora Workstation 32

    ID=fedora
    VERSION_ID=32

مثال 3. قراءة os-release في sh(1)

    #!/bin/sh -eu
    # SPDX-License-Identifier: MIT-0
    test -e /etc/os-release && os_release='/etc/os-release' || os_release='/usr/lib/os-release'
    . "${os_release}"
    echo "Running on ${PRETTY_NAME:-Linux}"
    if [ "${ID:-linux}" = "debian" ] || [ "${ID_LIKE#*debian*}" != "${ID_LIKE}" ]; then
        echo "Looks like Debian!"
    fi

مثال 4. قراءة os-release في python(1) (إصدارات >= 3.10)

    #!/usr/bin/python
    # SPDX-License-Identifier: MIT-0
    import platform
    os_release = platform.freedesktop_os_release()
    pretty_name = os_release.get('PRETTY_NAME', 'Linux')
    print(f'Running on {pretty_name!r}')
    if 'fedora' in [os_release.get('ID', 'linux'),
                    *os_release.get('ID_LIKE', '').split()]:
        print('Looks like Fedora!')

انظر وثائق platform.freedesktop_os_release[7] لمزيد من التفاصيل.

مثال 5. قراءة os-release في python(1) (أي إصدار)

    #!/usr/bin/python
    # SPDX-License-Identifier: MIT-0
    import ast
    import re
    import sys
    def read_os_release():
        try:
            filename = '/etc/os-release'
            f = open(filename)
        except FileNotFoundError:
            filename = '/usr/lib/os-release'
            f = open(filename)
        for line_number, line in enumerate(f, start=1):
            line = line.rstrip()
            if not line or line.startswith('#'):
                continue
            if m := re.match(r'([A-Z][A-Z_0-9]+)=(.*)', line):
                name, val = m.groups()
                if val and val[0] in '"\'':
                    val = ast.literal_eval(val)
                yield name, val
            else:
                print(f'{filename}:{line_number}: bad line {line!r}',
                      file=sys.stderr)
    os_release = dict(read_os_release())
    pretty_name = os_release.get('PRETTY_NAME', 'Linux')
    print(f'Running on {pretty_name!r}')
    if 'debian' in [os_release.get('ID', 'linux'),
                    *os_release.get('ID_LIKE', '').split()]:
        print('Looks like Debian!')

لاحظ أن الإصدار أعلاه الذي يستخدم التنفيذ المدمج يُفضل في معظم الحالات، والإصدار المفتوح الترميز هنا يُقدم كمرجع.

انظر أيضًا

systemd(1), lsb_release(1), hostname(5), machine-id(5), machine-info(5)

ملاحظات

1.  إعلان عن /etc/os-release
    https://0pointer.de/blog/projects/os-release

2.  initrd
    https://docs.kernel.org/admin-guide/initrd.html

3.  الخدمات المحمولة
    https://systemd.io/PORTABLE_SERVICES

4.  مواصفات تعداد المنصة المشتركة
    http://scap.nist.gov/specifications/cpe/

5.  تنسيق RFC3986
    https://tools.ietf.org/html/rfc3986

6.  مواصفات سمة الأيقونات من freedesktop.org
    https://standards.freedesktop.org/icon-theme-spec/latest

7.  platform.freedesktop_os_release
    https://docs.python.org/3/library/platform.html#platform.freedesktop_os_release

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

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

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