أدوات المستخدم

أدوات الموقع


docs:إنشاء_حزم_rpm

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقة المراجعة السابقة
المراجعة التالية
المراجعة السابقة
docs:إنشاء_حزم_rpm [2010/02/08 23:17]
alsadi إزالة ODT
docs:إنشاء_حزم_rpm [2015/04/23 00:19] (حالي)
سطر 1: سطر 1:
 +{{tag>​مقالات بناء حزم rpm}}
 +====== إنشاء حزم RPM ======
 +===== مقدمة =====
 +==== ما هي الحزم ====
 +
 +الحزم الجاهزة هي ملفات مضغوطة قد تحتوي على برامج أو وثائق أو حتى مجرد إعدادت يتم تثبيتها بشكل مؤتمت automated دون إلقاء أي أعباء على كاهل المستخدم وتلقيها على كاهل برنامج مدير الحزم. مدير الحزم هو برنامج يعمل على التأكد من سلامة الحزمة وتحقق كل الشروط التي تلزم لتثبيتها ثم فك الضغط ووضع الملفات في مكانها المناسب والقيام بكل الإعدادات المطلوبة دون الإضرار بالبرامج الأخرى. كما أن مدير الحزم يمكنه إزالة الحزم المثبتة أو ترقيتها بطريقة آمنة ونظيفة.
 +
 +كما أن الحزم تزيل الكثير من الأعباء عن مطور البرنامج.
 +
 +تتألف أي حزمة من الحمل Payload (وهو الأرشيف المضغوط والمعلومات المرافقة) والنصوص التنفيذية المصغرة المسؤولة عن التثبيت scriptlets
 +
 +==== ما هي حزم RPM ====
 +حزم RPM أي مدير حزم ريدهات Redhat Package Manager وحديثا أصبح RPM Package Manager (أي أن الحرف الأول R جاء من RPM وليس Redhat كما في غنو وغيرها من الاختصارات المتداخلة) وهو مدير حزم حر مفتوح المصدر أطلقته ريدهات ويستعمل في كثير من التوزيعات حتى التي تقف وراءها شركات أخرى (مثل ماندريفا Mandriva وسوزة Suse وغيرهما)
 +بل وتستخدم في أنظمة غير مبنية على لينكس
 +مثل Novell Netware (منذ الاصدار 6.5 SP3) و نظام AIX (منذ الإصدار 4) .
 +
 +وقد اختارت ​ [[http://​www.linuxfoundation.org|مؤسسة لينكس LinuxFoundation.org]] حزم RPM لتكون الحزم المعتمدة في [[http://​www.linuxbase.org/​|معيار لينكس الأساس Linux Standard Base]] انظر [[http://​refspecs.freestandards.org/​LSB_3.1.0/​LSB-Core-generic/​LSB-Core-generic/​swinstall.html|الباب 22 من LSB]]
 +
 +===== تحضير المستلزمات =====
 +يجب أن يكون لديك بعض الحزم مثبتة بشكل مسبق حتى تتمكن من بناء حزم RPM، للحصول عليها اكتب الأمر **بصلاحيات الجذر**:​
 +
 +  yum install rpm-build
 +
 +وحيث أن أغلب الحزم ستحتاج إلى مصنف لغة سي فإنك ستحتاج إلى تثبيت أدوات التطوير (مثل gcc) ويمكن تثبيتها بالامر
 +
 +  yum groupinstall "​Development Tools"
 +
 +يجب أن تتم عملية بناء الحزم **دون** صلاحيات حتى لا تؤثر هذه العملية على النظام (مثلا إذا كان هناك خطأ إملائي في ملف محددات البناء) وحتى نتمكن من القيام بذلك يجب أن نخصص مجلد نقوم بعملية البناء بداخله ويكون ذلك بكتابة الأمر التالي كمستخدم عادي **دون** صلاحيات
 +
 +  mkdir -p ~/​rpmbuild/​{BUILD,​RPMS,​SOURCES,​SPECS,​SRPMS}
 +  echo '​%_topdir %(echo $HOME)/​rpmbuild'​ > ~/​.rpmmacros
 +
 +===== بناء حزمة RPM مصدرية معدة مسبقا SRPM =====
 +الحزم المصدرية التي تنتهي بالامتداد .src.rpm وتسمى أحيانا SRPMs  جاهزة كي يتم إعادة بناؤها بأمر واحد وهو
 +
 +  rpmbuild --rebuild FILE.src.rpm
 +
 +الحزم المصدرية SRPMs تحتوي على الملفات المصدرية (والتي غالبا ما تكون على شكل أرشيف tar.gz أو tar.bz2) إلى جانب الرقاع patches إن وجدت وملف المحددات SPEC file وهو الذي يحدد خطوات البناء.
 +
 +كذلك يمكن بناء الحزمة من ملف المحددات إذا كانت الملفات المصدرية موجودة في المكان المخصص لها وهو مجلد المصادر SOURCES والذي هو في مثالنا داخل rpmbuild داخل البيت ويمكن إرسالها هناك بشكل آلي بتثبيت الحزمة المصدرية كأي حزمة عادية بالأمر
 +  rpm -i FILE.src.rpm
 +
 +ويجب تنفيذ الأمر السابق كمستخدم عادي **دون صلاحيات** عندها يتم نقل الملفات المصدرية الموجودة بداخل الحزمة
 +
 +ويمكنك نقل المفات المصدرية هناك بشكل يدوي عبر مدير الملفات أو عبر أمر النسخ cp ...إلخ وبعد ذلك يتم بناء الحزمة بالأمر
 +  rpmbuild -ba FILE.spec
 +
 +ملف المحددات FILE.spec تجده داخل المجلد SPECS داخل مجلد البناء وهو في مثالنا rpmbuild داخل البيت
 +
 +===== بناء الأرشيفات المصدرية tarballs المعدة مسبقا =====
 +إذا كان الأرشيف المصدري المضغوط (بطريقة .tar.gz أو .tar.bz2) يحتوي على ملف المحددات SPEC بنفس اسم الأرشيف فإنه يمكن بناؤه بأمر واحد وهو
 +  rpmbuild -ta FILE.tar.gz
 +
 +===== بناء حزمة RPM من الصفر =====
 +===== حزم خاصة =====
 +==== حزم الخطوط ====
 +انظر هذا الدرس من فيدورا [[http://​fedoraproject.org/​wiki/​Making_text_exquisite%2C_worldwide_%E2%80%94_packaging_fonts_in_Fedora|عن طريقة تحضير حزم الخطوط]]
 +
 +كذلك استعمل هذا القالب http://​fedoraproject.org/​wiki/​Packaging/​FontsSpecTemplate
 +والاستفادة من القاولب الموجودة في هذا الأرشيف http://​nim.fedorapeople.org/​fontpackages/​fontpackages-1.10.tar.bz2
 +
 +فيدورا [[http://​fedoraproject.org/​wiki/​Archive_template_for_fonts|تنصح]] مصممي الخطوط وضعها بأرشيف كهذا القالب الذي عملته ديبيان http://​svn.debian.org/​wsvn/​pkg-fonts/​foo-open-font-sources/​
 +
 +
 +===== مراجع =====
 +  * http://​rpm.org/​max-rpm/​
 +  * http://​wiki.centos.org/​HowTos/​SetupRpmBuildEnvironment
 +  * http://​fedoraproject.org/​wiki/​Docs/​Drafts/​BuildingPackagesGuide
 +  * https://​fedoraproject.org/​wiki/​Packaging/​Guidelines
 +  * http://​fedoraproject.org/​wiki/​PackageMaintainers/​CreatingPackageHowTo
 +  * http://​fedoraproject.org/​wiki/​Packaging_tricks
  
docs/إنشاء_حزم_rpm.txt · آخر تعديل: 2015/04/23 00:19 (تحرير خارجي)