RPM-VERSION(7)

الاسم
rpm-version - نظام إصدارات RPM

موجز
[EPOCH:]VERSION[-RELEASE]

الوصف
تُستخدم وسم تُعرف باسم EVR للإشارة إلى إصدارات البرمجيات في RPM، وتتكون من ما يصل إلى ثلاثة مكونات:

•   يعكس الإصدار إصدار البرمجيات الفعلي المحزّم.
•   يعكس الإطلاق مراجعات التحزيم ضمن إصدار البرمجيات ذاك.
•   الحقبة هي تجاوز اصطناعي للسماح بالالتفاف على شذوذ الإصدارات.

مكون الإصدار فقط هو الإلزامي في وسم EVR. ومع ذلك، تمتلك جميع حزم RPM إصدارًا و إطلاقًا.

  الإصدار
تعكس سلسلة الإصدار إصدار البرمجيات الفعلي المحزّم.

تتكون السلسلة من محارف أبجدية رقمية ASCII، مقسمة اختياريًا باستخدام فواصل النقطة (.)، والشرطة السفلية (_) وعلامة الجمع (+)، وعوامل التلدة (~) والعلامة الإقحامية (^).

تُستخدم العوامل لربط سلاسل إصدارات ما قبل وما بعد الإطلاق في ترقية متماسكة.

والجدير بالذكر أنه لا يمكن استخدام محرف الشرطة (-) في الإصدار أو الإطلاق لأنه فاصل المكونات.

  الإطلاق
يعكس الإطلاق مراجعة ضمن إصدار برمجيات واحد. وبشكل مثالي، الإطلاق هو عدد صحيح بسيط يُزاد كلما أُجريت تغييرات على حزمة، ويجب تصفيره (إلى 1) كلما تغير إصدار البرمجيات.

من الناحية التقنية، التنسيق هو نفسه تمامًا كما في الإصدار.

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

تمتلك الحقبة المحذوفة قيمة ضمنية هي الصفر.

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

  المقارنة
تُقارن وسما EVR من اليسار إلى اليمين، مكونًا تلو الآخر. وتُقارن المكونات من اليسار إلى اليمين، قطعة تلو الأخرى. تتوقف المقارنة بمجرد العثور على اختلاف على مستوى القطعة أو المكون، فإذا اختلفت الحقب على سبيل المثال، فلا يُنظر في بقية EVR على الإطلاق.

داخل المكونات، تشكل المحارف الأبجدية المتتالية والأرقام المتتالية قطعًا ضمنية. ويُشار إلى القطع الصريحة بواسطة الفواصل والعوامل. تُقارن القطع الرقمية عدديًا كأعداد صحيحة مع تجاهل الأصفار البادئة، وإلا تُستخدم المقارنة المعجمية. أي أن abc123 تتكون من قطعتين: abc و 123 وهي تساوي abc0123 و abc.123 و abc.000123 رغم اختلاف المظهر.

تُعد القطع الرقمية أحدث من القطع الأبجدية بغض النظر عن المحتوى الفعلي. وعند التساوي في غير ذلك، يُعد المكون الذي يحتوي على قطع أكثر أحدث، وبالمثل يُعد EVR الذي يحتوي على مكونات أكثر أحدث. على سبيل المثال، 0.0 أحدث من 0 و 1.xyz أقدم من 1.0 لكنه أحدث من 1.

لا تُقارن محارف فاصل القطع، لذا يمكن استخدامها بالتبادل، وتُعامل الفواصل المتتالية المتعددة كما لو استُخدم فاصل واحد فقط. وبالتالي، 1.0 يساوي 1+0 و 1+.+0.

يتسبب عامل التلدة في ترتيب قطعة كأقدم، ويُستخدم لـ إصدارات ما قبل الإطلاق. على سبيل المثال 2.0~beta1 أقدم من 2.0 أو 2.0~rc1، وأحدث من 1.0. عامل العلامة الإقحامية هو أساسًا عكس التلدة. إذ يتسبب في ترتيب قطعة كأحدث، ويُستخدم لـ لقطات ما بعد الإطلاق التي توجد بين إطلاقات البرمجيات الفعلية. على سبيل المثال، 2.0^150825 أحدث من 2.0 لكنه أقدم من 2.0.1.

أمثلة
123
    إصدار بسيط وحيد القطعة 123. أحدث من 99، أقدم من 321.

1.0.1
    سلسلة إصدار مقسمة 1.0.1، مثلما تُستخدم عادةً في مشاريع البرمجيات للإشارة إلى دلالات رئيس.فرعي.دقيق. أحدث من 1.0، وأقدم من 1.0.2.

2.60.1-1
    الإطلاق الأول من الإصدار 2.60.1. أحدث من 2.0 أو 2.60، لكنه أقدم من 3.0.

1.0-5
    الإطلاق الخامس من الإصدار 1.0، أحدث من 1.0 أو 1.0-1، وأقدم من 1.0.1.

5:3.0-1
    الإطلاق الأول من الإصدار 3.0، مع حقبة 5. أحدث من 6.0-1، أو 4:6.0-1، وأقدم من 5:3.1-1.

1.0~beta2
    ما قبل الإطلاق beta2 من الإصدار 1.0. أحدث من 0.99 و 1.0~beta1، وأقدم من 1.0.

2.0^20250611
    لقطة ما بعد الإطلاق 20250611 من الإصدار 2.0. أحدث من 2.0، وأقدم من 2.0.1.

العلل
توجد سلوكيات متنوعة غير واضحة وزوايا مظلمة ضمن خوارزمية مقارنة الإصدارات، ولكن يصعب معالجتها بسبب المخاطرة العالية لكسر الحزم الموجودة:

•   تُتجاهل المحارف غير ASCII وبالتالي تتساوى: 1.1.α يساوي 1.1.β وحتى 1.1.ββ. يرفض rpmbuild(1) مثل هذه EVRs ولكن من الممكن مواجهة قيم "غير قانونية" عبر استخدام واجهة برمجة التطبيقات، والحزم القديمة جدًا والحزم المنشأة بأدوات طرف ثالث.
•   يمكن أن تكون القطع الضمنية مخادعة: 1.f أحدث من 1c.f. تصبح النتيجة أكثر وضوحًا بجعل القطع صريحة: 1.f أحدث من 1.c.f لأن القطع تُقارن واحدة تلو الأخرى، ويُرتب c أقل من f معجميًا.

rpm(8) rpmbuild(1) rpmsort(1)

http://www.rpm.org/

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

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

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