مدير حزمة RPM

مدير الحزم RPM (RPM)
المؤلف(ون) الأصلي(ون)إريك تروين، مارك إيوينج ، [1] ريد هات
المطور(ون)المجتمع وريد هات [2] [3]
الإصدار الأولي1997 ؛ منذ 27 سنة [1] ( 1997 )
إصدار مستقر
4.20 / 7 أكتوبر 2024 ؛ منذ 25 يومًا ( 2024-10-07 )
مستودع
  • github.com/rpm-software-management/rpm
مكتوب فيج ، بيرل [4]
نظام التشغيللينكس ، شبيه يونكس
متوفر في40 لغة [5]
يكتبنظام إدارة الحزم
رخصةرخصة جنو العمومية
موقع إلكترونيrpm.org

مدير حزم RPM ( RPM ) (كان في الأصل مدير حزم Red Hat ، وهو الآن اختصار متكرر ) هو نظام إدارة حزم مجاني ومفتوح المصدر . [6] يشير اسم RPM إلى تنسيق الملف وبرنامج مدير الحزم نفسه. كان RPM مخصصًا في المقام الأول لتوزيعات Linux ؛ تنسيق الملف هو تنسيق الحزمة الأساسي لـ Linux Standard Base . .rpm

على الرغم من أنه تم إنشاؤه للاستخدام في Red Hat Linux ، إلا أن RPM يُستخدم الآن في العديد من توزيعات Linux مثل PCLinuxOS و Fedora Linux و AlmaLinux و CentOS و openSUSE و OpenMandriva و Oracle Linux . كما تم نقله إلى بعض أنظمة التشغيل الأخرى ، مثل Novell NetWare (اعتبارًا من الإصدار 6.5 SP3)، و IBM's AIX (اعتبارًا من الإصدار 4)، [7] وIBM i ، [8] و ArcaOS . [9]

يمكن أن تحتوي حزمة RPM على مجموعة عشوائية من الملفات. معظم ملفات RPM هي "ملفات RPM ثنائية" (أو BRPMs) تحتوي على الإصدار المجمّع لبعض البرامج. هناك أيضًا "ملفات RPM المصدرية" (أو SRPMs) تحتوي على الكود المصدر المستخدم لبناء حزمة ثنائية. تحتوي هذه الملفات على علامة مناسبة في رأس الملف تميزها عن ملفات RPM العادية (B) مما يؤدي إلى استخراجها إلى /usr/src عند التثبيت. تحمل ملفات RPM عادةً امتداد الملف ".src.rpm" (.spm على أنظمة الملفات المحدودة بثلاثة أحرف امتداد، على سبيل المثال DOS FAT القديم ).

تاريخ

تم تأليف RPM في الأصل في عام 1997 بواسطة Erik Troan و Marc Ewing ، [1] استنادًا إلى تجارب pms، rpp، و .pm

pmتم كتابته بواسطة ريك فيث ودوج هوفمان في مايو 1995 لشركة ريد هات سوفتوير، وقد تأثر تصميمه وتنفيذاته بشكل كبير بـ pms، وهو نظام إدارة حزم بواسطة فيث وكيفن مارتن في خريف عام 1993 لتوزيعة لينكس المزيفة. pmيحافظ على نموذج " المصادر البكر + التصحيحات" لـ pms، مع إضافة ميزات وإزالة القيود التعسفية الموجودة في التنفيذ. pmيوفر دعمًا محسنًا للغاية لقاعدة البيانات لتتبع الحزم المثبتة والتحقق منها. [4] [10] [11]

سمات

بالنسبة لمسؤول النظام الذي يقوم بتثبيت البرامج وصيانتها، فإن استخدام إدارة الحزم بدلاً من البناء اليدوي له مزايا مثل البساطة والتناسق والقدرة على أتمتة هذه العمليات وعدم تفاعلها. يستخدم rpm قاعدة بيانات Berkeley DB كقاعدة بيانات خلفية على الرغم من أنه منذ الإصدار 4.15 في عام 2019، فإنه يدعم بناء حزم rpm بدون Berkeley DB ( –disable-bdb). [12]

تتضمن ميزات RPM ما يلي:

  • يمكن التحقق من حزم RPM تشفيريًا باستخدام GPG و MD5
  • يتم تضمين أرشيفات المصدر الأصلية (على سبيل المثال .tar.gz، .tar.bz2) في SRPMs، مما يجعل التحقق أسهل
  • تحديث دلتا : يمكن لـ PatchRPMs وDeltaRPMs، وهو ما يعادل ملف التصحيح في RPM ، تحديث البرامج المثبتة في RPM بشكل تدريجي
  • تقييم التبعيات في وقت البناء التلقائي.

العمليات المحلية

قد تأتي الحزم من داخل توزيع معين (على سبيل المثال Red Hat Enterprise Linux ) أو يتم بناؤها من أجله بواسطة أطراف أخرى (على سبيل المثال RPM Fusion لـ Fedora Linux). [13] يمكن أن تكون التبعيات الدائرية بين حزم RPM المعتمدة على بعضها البعض (ما يسمى " جحيم التبعية ") مشكلة؛ [14] في مثل هذه الحالات، يحتاج أمر تثبيت واحد إلى تحديد جميع الحزم ذات الصلة.

المستودعات

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

الواجهة الأمامية

تسهل العديد من واجهات RPM عملية الحصول على RPM وتثبيتها من المستودعات وتساعد في حل تبعياتها. وتشمل هذه:

قاعدة بيانات تثبيت RPM المحلية

تعمل قاعدة بيانات RPM، المخزنة في /var/lib/rpm. وهي تستخدم Berkeley DB كبرنامج خلفي لها. وتتكون من قاعدة بيانات واحدة ( Packages) تحتوي على جميع المعلومات الوصفية لحزم RPM المثبتة. يتم إنشاء قواعد بيانات متعددة لأغراض الفهرسة، وتكرار البيانات لتسريع الاستعلامات. تُستخدم قاعدة البيانات لتتبع جميع الملفات التي يتم تغييرها وإنشاؤها عندما يقوم المستخدم (باستخدام RPM) بتثبيت حزمة، وبالتالي تمكين المستخدم (عبر RPM) من عكس التغييرات وإزالة الحزمة لاحقًا. إذا تعرضت قاعدة البيانات للتلف (وهو أمر ممكن إذا تم قتل عميل RPM )، فيمكن إعادة إنشاء قواعد بيانات الفهرس باستخدام rpm --rebuilddbالأمر. [17]

وصف

على الرغم من أن تنسيق RPM هو نفسه عبر توزيعات Linux المختلفة ، إلا أن الاتفاقيات والإرشادات التفصيلية قد تختلف عبرها.

اسم ملف الحزمة والتسمية

يتم تسليم RPM في ملف واحد، عادةً مع اسم الملف بالتنسيق التالي:

<name>-<version>-<release>.src.rpmلحزم المصدر، أو
<name>-<version>-<release>.<architecture>.rpmللملفات الثنائية.

على سبيل المثال، في اسم ملف الحزمة libgnomeuimm-2.0-2.0.0_3.i386.rpm، <name>يكون is libgnomeuimmو <version>is و is 2.0و is . سيتم تسمية حزمة المصدر المرتبطة<release>2.0.0_3<architecture>i386libgnomeuimm-2.0-2.0.0_3.src.rpm

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

تتضمن محتويات RPM أيضًا ملصق الحزمة ، والذي يحتوي على المعلومات التالية:

  • اسم البرنامج
  • إصدار البرنامج (الإصدار المأخوذ من المصدر الأصلي للبرنامج )
  • إصدار الحزمة (عدد المرات التي تم فيها إعادة بناء الحزمة باستخدام نفس إصدار البرنامج). يستخدم هذا الحقل أيضًا غالبًا للإشارة إلى التوزيع المحدد الذي تم تصميم الحزمة له من خلال إلحاق سلاسل مثل "mdv" (سابقًا، "mdk") ( Mandriva Linux )، و"mga" ( Mageia )، و"fc4" ( Fedora Core 4)، و"rh9" ( Red Hat Linux 9)، و"suse100" ( SUSE Linux 10.0) وما إلى ذلك.
  • الهندسة المعمارية التي تم بناء الحزمة من أجلها (i386، i686، x86_64، ppc، إلخ.)

لا يلزم أن تتطابق حقول تسمية الحزمة مع اسم الملف.

تغليف المكتبة

يتم توزيع المكتبات في حزمتين منفصلتين لكل إصدار. تحتوي إحداهما على الكود المجمّع مسبقًا للاستخدام في وقت التشغيل، بينما تحتوي الثانية على ملفات التطوير ذات الصلة مثل الرؤوس، وما إلى ذلك. تحتوي هذه الحزم على "-devel" مضافة إلى حقل الاسم الخاص بها. يجب على مسؤول النظام التأكد من تطابق إصدارات الحزم الثنائية وحزم التطوير.

تنسيق ثنائي

الشكل ثنائي ويتكون من أربعة أقسام: [6]

  • الدليل الذي يحدد الملف كملف RPM ويحتوي على بعض الرؤوس القديمة.
  • التوقيع، والذي يمكن استخدامه لضمان النزاهة و/أو الأصالة.
  • الرأس، الذي يحتوي على بيانات وصفية بما في ذلك اسم الحزمة والإصدار والهندسة المعمارية وقائمة الملفات وما إلى ذلك.
  • أرشيف ملف ( الحمولة )، والذي يكون عادةً بتنسيق cpio ، مضغوطًا باستخدام gzip . rpm2cpioتتيح الأداة استرجاع ملف cpio دون الحاجة إلى تثبيت حزمة RPM. [18]
    • تتطلب قاعدة Linux القياسية استخدام gzip، ولكن حزم Fedora 30 مضغوطة بـ xz وقد تكون حزم Fedora 31 مضغوطة بـ zstd . [19] يمكن للإصدارات الحديثة من RPM أيضًا استخدام ضغط bzip2 أو lzip أو [20] أو lzma .
    • يدعم تنسيق RPM 5.0 استخدام xar للأرشفة.

ملف المواصفات

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

يتم توزيع ملفات المواصفات عادةً داخل ملفات SRPM، والتي تحتوي على ملف المواصفات المُضمن مع الكود المصدر.

إس آر بي إم

إن ملف RPM النموذجي عبارة عن برنامج مُجمَّع مسبقًا وجاهز للتثبيت المباشر. ويمكن أيضًا توزيع الكود المصدري المقابل. ويتم ذلك في ملف RPM، والذي يتضمن أيضًا ملف "SPEC" الذي يصف البرنامج وكيفية بنائه. كما يسمح ملف RPM للمستخدم بتجميع الكود نفسه وربما تعديله.

يمكن أن تحتوي حزمة البرامج على نصوص مستقلة عن المنصة فقط. في هذه الحالة، يمكن للمطور توفير SRPM فقط، وهو لا يزال عبارة عن RPM قابل للتثبيت.

مركز أبحاث العلوم الطبيعية

هذه نسخة خاصة من SRPM. تحتوي على ملف "SPEC" وتصحيحات اختيارية، لكنها لا تتضمن مصادر (عادةً بسبب الترخيص). [21]

شوك

اعتبارًا من يونيو 2010 ، هناك نسختان من RPM قيد التطوير: واحدة يقودها مشروع Fedora وRed Hat، والأخرى يقودها مجموعة منفصلة يقودها أحد صيانين RPM السابقين، وهو موظف سابق في Red Hat.

RPM.org

تم إجراء أول مراجعة رئيسية للكود الخاص بمجتمع rpm.org في يوليو 2007؛ وتم إصدار الإصدار 4.8 في يناير 2010، والإصدار 4.9 في مارس 2011، و4.10 في مايو 2012، و4.11 في يناير 2013، و4.12 في سبتمبر 2014، و4.13 في يوليو 2015.

يتم استخدام هذا الإصدار بواسطة توزيعات مثل Fedora Linux و Red Hat Enterprise Linux ومشتقاتها و openSUSE و SUSE Linux Enterprise و Unity Linux و Mageia [ 22 ] وOpenEmbedded و Tizen و OpenMandriva Lx ( Mandriva سابقًا ).

RPM v5 (غير نشط)

واصل جيف جونسون، المشرف على RPM منذ عام 1999، جهود التطوير مع المشاركين من العديد من التوزيعات الأخرى. تم إصدار الإصدار 5 من RPM في مايو 2007.

تم استخدام هذا الإصدار بواسطة توزيعات مثل Wind River Linux (حتى Wind River Linux 10)، وRosa Linux، و OpenMandriva Lx ( Mandriva Linux السابق الذي تحول إلى rpm5 في عام 2011 [23] ) وأيضًا بواسطة مشروع OpenPKG الذي يوفر حزمًا لمنصات UNIX الشائعة الأخرى.

لقد تم تحويل OpenMandriva Lx مرة أخرى إلى rpm.org [24] لإصدار 4.0. [ يحتاج إلى تحديث ]

OpenEmbedded ، آخر مستخدم رئيسي لـ RPM5، عاد إلى rpm.org بسبب مشاكل في RPM5. [25] [26]

انظر أيضا

مراجع

  1. ^ abc "RPM timeline". rpm.org . تم الاسترجاع في 2020-06-25 .
  2. ^ "RPM -- plans, goals, etc". ماكس سبيفاك. مؤرشف من الأصل في 2012-10-06 . تم الاسترجاع في 2011-01-20 .
  3. ^ "RPM.org FAQ". مؤرشف من الأصل في 2016-11-05 . تم الاسترجاع في 2013-08-25 .
  4. ^ ab Bailey, Edward C. (2000). "الفصل 1: مقدمة لإدارة الحزم". الحد الأقصى لعدد الدورات في الدقيقة: أخذ مدير حزم Red Hat إلى الحد الأقصى. Red Hat, Inc. ص 22-25. ISBN 978-1888172782. تم أرشفة النسخة الأصلية في 2016-09-10 . تم استرجاعها في 2013-08-13 .
  5. ^ "po/LINGUAS". GitHub. 2022-04-23. مؤرشف من الأصل في 2022-04-23 . تم الاسترجاع 2022-04-23 .
  6. ^ ab Bailey, Edward C. (2000). "Appendix A: Format of the RPM File". Maximum RPM: Taking the Red Hat Package Manager to the Limit. Red Hat, Inc. pp. 325–336. ISBN 978-1888172782. تم أرشفة النسخة الأصلية في 2016-04-21 . تم استرجاعها في 2010-11-22 .
  7. ^ "تكوين YUM وإنشاء مستودعات محلية على IBM AIX". 2018-10-24. مؤرشف من الأصل في 2020-10-03 . تم الاسترجاع 2020-09-03 .
  8. ^ "RPM وYum يمثلان أهمية كبيرة بالنسبة لـ IBM i. إليكم السبب". 2018-07-18. مؤرشف من الأصل في 2019-06-29 . تم الاسترجاع 2020-09-03 .
  9. ^ "مدير الحزم". مؤرشف من الأصل في 2016-03-25 . تم الاسترجاع 2020-09-04 .
  10. ^ "RPM Guide-RPM - Design Goals". مؤرشف من الأصل في 2014-03-21 . تم الاسترجاع في 2014-04-14 .
  11. ^ "إعلان كاذب". مؤرشف من الأصل في 2013-11-04 . تم استرجاعه في 2014-04-14 .
  12. ^ "rpm4 كان يدعم بناء rpm بدون Berkeley DB (–disable-bdb)". منتديات FreeBSD . 2020-01-29. مؤرشف من الأصل في 2024-02-23 . تم الاسترجاع 2023-09-18 .
  13. ^ "RPM Fusion". rpmfusion.org. مؤرشف من الأصل في 2019-02-11 . تم الاسترجاع 2010-11-22 .
  14. ^ "تحليل انحراف التحقق من صحة RPM" (PDF) . USENIX Association. مؤرشف من الأصل (PDF) في 2011-07-28 . تم الاسترجاع في 2011-03-15 .
  15. ^ "Zypper - MeeGo wiki". مؤرشف من الأصل في 2013-09-25 . تم الاسترجاع 2014-04-14 .
  16. ^ "الأسئلة الشائعة: حول المشاريع". الموقع الرسمي لـ Ark Linux. مؤرشف من الأصل في 2012-02-11 . تم الاسترجاع في 2014-04-14 .
  17. ^ "إصلاح قاعدة بيانات RPM بأمان". مؤرشف من الأصل في 2019-08-06 . تم الاسترجاع 2011-11-11 .
  18. ^ "برنامج التغليف التكميلي". مشروع فيدورا. مؤرشف من الأصل في 2016-03-10 . تم الاسترجاع في 2011-11-11 .
  19. ^ "تحويل RPMs إلى ضغط zstd". مشروع فيدورا (ويكي). مؤرشف من الأصل في 2019-06-02 . تم الاسترجاع في 2019-06-02 .
  20. ^ "[تصحيح] إضافة دعم lzip". مؤرشف من الأصل في 2016-03-04 . تم الاسترجاع في 2013-10-24 .
  21. ^ "كيفية تعبئة البرمجيات الاحتكارية". 10 ديسمبر 2014. مؤرشف من الأصل في 2018-07-02 . تم الاسترجاع 2018-07-02 .
  22. ^ "Mageia 3 Release Notes: Package management". mageia.org . 2013-05-19. مؤرشف من الأصل في 2014-02-07 . تم الاسترجاع في 2014-04-14 .
  23. ^ Bodnar, Ladislav & Smith, Jesse (2010-11-22). "DistroWatch Weekly". DistroWatch . مؤرشف من الأصل في 2018-06-23 . تم الاسترجاع في 2010-11-22 .
  24. ^ "منتدى: التحول إلى RPMv4". مؤرشف من الأصل في 2022-01-14 . تم الاسترجاع 2018-03-03 .
  25. ^ "YP Core - Pyro 2.3". Yocto Project . 2017-05-12. مؤرشف من الأصل في 2017-12-05 . تم الاسترجاع 2017-12-04 .{{cite web}}:CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( الرابط )()
  26. ^ "[Openembedded-architecture] التغييرات التي قد يسببها التحول من smart إلى dnf". مشروع Yocto . 2017-02-14. مؤرشف من الأصل في 2018-11-05 . تم الاسترجاع في 2018-11-04 .
  • شرودر، جيف (2008-01-30). "سلاسل استعلام RPM المتقدمة". www.digitalprognosis.com . مؤرشف من الأصل في 2011-08-09 . تم الاسترجاع في 2018-03-28 .
  • الصفحة الرئيسية لمشروع RPM.org
  • مرجع أوامر RPM وDPKG محفوظ في 2016-10-28 على موقع Wayback Machine
  • قصة RPM أرشيف 2013-02-01 في archive.today بقلم مات فراي في مجلة Red Hat أرشيف 2007-09-29 في Wayback Machine
  • كيفية إنشاء حزمة RPM
  • دروس فيديو لبناء وتحديث RPMs
  • ملاحظات RPM - إنشاء RPMs بالطريقة السهلة
  • تغليف البرامج باستخدام RPM، الجزء 1: بناء وتوزيع الحزم
  • تعلم Linux، 101: إدارة حزم RPM وYUM
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=RPM_Package_Manager&oldid=1250215697"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate