الموضوع: شرح rpm
عرض مشاركة واحدة
قديم 05-25-2009, 01:53 AM   رقم المشاركة : [1]
CLassiC
:: شخصيـﮧ هامـﮧ ::

 الصورة الرمزية CLassiC
 




 

مركز رفع الصور والملفات

افتراضي شرح rpm


السلام عليكم ورحمة الله وبركاته
اليوم سوف يكون الموضوع سهل وبسيط ولفيدورا واخواتها فقط , عن rpm و ايضا yum لن يضر
اولا معنى : rpm قديما كانت تعني Red Hat Package Manger ولكن عفا على الهذا المصلح الزمن وتغير ليكون Rpm Package Manger لانه لم يعد يستخدما بواسطة ريدهات فقط
وأضف الى ذلك انه تم اعتماده كمدير للحزم اساسيا فى Linux Standard **** ( قاعدة لينكس الاساسية ) وهو مشروع بدعم من مؤسسة اللينكس (Linux Foundation)
وصراحه هو يستحق ذلك لانه خفيف وسهل الاستخدام جدا ومشاكله نادره جدا جدا , على عكس apt-get واللذى يجد الكثير من مستخدمية مشاكل معه
والواجهه التى يستخدمها هى yum وهى يمكنها التعامل مع كافة المستودعات بطريقة سلسة ولو أن اكثر ما يشكو منه الجميع هو انه يقوم كل مره تقوم فيها بتثبيت برنامج يقوم بتحديث المستودعات , ولكن هذا ليس سيئا فهذا يضمن لك انك سوف تقوم بتثبيت اخر اصدار للبرنامج واللذى غالبا مايحتوى على اضافات وتحسينات , فضلا عن ذلك لا احد يقوم بتثبيت حزم كل الوقت , لذلك هذا شخصيا لا اعده عيب بل ميزه
ومن الجدير بالذكر ايضا أن مبرمجي الاداه يستخدم قاعدة البيانات sqlite لتخزين معلومات الحزم واعتماديات الحزم على بعضاه ومعلومات أخرى , وهى قاعدة بيانات سهلة بسيطه و سريعة يتم استخدامها حديثا مع الكثير من التطبيقات
ثانيا بعض من حلوى rpm : البحث عن حزم (لاحظ أنك مع الامر rpm تبحث عن حزم مثبته فعليا ولكي تبحث عن حزم لكى تثبتها استخدم yum ), يمكنك البحث بدون الحاجه الى ان تكون بحساب رووت


$ rpm -q PACKAGE
PACKAG.VERSION.RELEASE.DIST.ARCHITURE


هذا يقوم بالبحث عن اى حزمة مثبته حيث PACKAGE هو اسم الحزمة بالكامل مثل gnome-terminal , totem , xorg-x11-xkb-utils و غيرها وسوف
VERSION : أصدار البرنامج حسب ترقيم المبرمج نفسه و غالبا ماتحتوى الجديدة على تحسينات فى البرنامج نفسه
RELEASE : اصدر البرنامج حسب الشخص اللذى يقوم بتطويره ورعايته فى مستودع الحزم ويتخلف فى ان كل RELEASE يختلف عن الاخر فى patches مثلا او ملف يتم استثناءههه من الحزمه لاسباب امنية او سياسة مطورى التوزيعة وغالبا ماتحتوى التغييرات على ترقيعات
DIST : اصدار التوزيعة مثلا fc10 لفيدورا الاصدار العاشر
ARCHITURE: نوع المعالج اللذى تم بناء الحزمة عليه , مثلا x86 للمعالجات 32 او x86_64 لمعالجات 64
هناك احياننا حزم تسمى الحزم التطويرية وهى تحتوى على ملفات headers او مايسمى بالكود المصدر للبرنامج ويسكون اسمها هو PACKAG-devel وهى ملفات تحتاجها احياننا اذا اضطررت الى ان تقوم بعمل compile بنفسك لأحد الحزم (هناك بعض الحزم اللتى تعتمد على حزم اخرى , مثلا حزمة gimp تحتاج الى gtk2 وبالتالى عند عمل compile لحزمة gimp بنفسك سوف تحتاج الى gtk2-devel وقد لايكون gtk2 نفسها مهما لعملية compile, لاحظ انى اتكلم عن عملية compile وهذا مثال للايضاح لا أكثر )
هناك خيارات أخرى مع نفس الامر (rpm -q) :
i : يعطي معلومات مفصله عن الحزمة , مثل الوصف لهدف الحزمة و الرخضة
l : يظهر لك كافة ملفات الحزمة المثبته
c : يعطي مسارات ملفات ضبط البرنامج (Configuration Files)
d :يعطى مسارات ملفات التوثيق (********ation Files)
V :يقوم بالتحقق من تغييرات او مفقودات فى ملفات حزمة معينة
f : عندما تعطي هذا الخيار مسار ملف معين بدلا من اسم حزمة يقوم هو بإعطائك إسم الحزمة التى تملك ذلك الملف , يمكن استخدامه مع خيارات أخرى , مثل i أو c
--changelog : هذا الامر يجعلك محترف نوعا ما , فهو يعطيك التغييرات فى الاصدارات وما تم اضافته وما تم ازالته وما الى ذلك
لاحظوا المثال التالى

$ rpm -qfc /etc/bashrc
/etc/aliases
/etc/bashrc
/etc/csh.cshrc
/etc/csh.login
/etc/environment
/etc/exports
/etc/filesystems
/etc/fstab
/etc/group
/etc/gshadow
/etc/host.conf
/etc/hosts.allow
/etc/hosts.deny
/etc/inputrc
/etc/motd
/etc/mtab
/etc/passwd
/etc/printcap
/etc/profile
/etc/protocols
/etc/securetty
/etc/services
/etc/shadow
/etc/shells

التثبيت : rpm فقط بتعامل مع ملفات rpm وليس مستودعات , بمعنى اخر عليك الحصول على ملف الحزمة(يجب ان تحصل عليها من موقع ثقة حتى لايكون هناك تلاعب بها) على شكل ملف rpm لتثبيته (يحتاج الى صلاحيات المستخدم رووت), بالامر

# rpm -i PACKAGE.rpm
الازالة : لإزالة حزمة مثته حاليا (يجب عليك ان تكون حذرا جدا جدا عند حذف اى حزمة) :

# rpm -e PACKAGE
وهناك ايضا أكثر من هذا بكثير جدا فى man , أكتب الامر

$ man rpm
هذا ما يهمنى ان اعرفكم به حاليا مع rpm , وهو الاساسى فى التعامل معه , هناك اشياء اخرى يمكنكم رؤيتها فى صفحة الدليل ^^
ثالثا : yum
هو برنامج يسمى front end for rpm او ببساطه واجهه لتعامل مع rpm ولكن يعطيك ميزات اكبر مثل التعامل مع المستودعات وايضا ايجاد حزم وغير ذلك
وهو برنامج موجود تلقائيا على كل توزيعات فيدورا و اخواتها ويمكنك من التعرف السابق فى بداية المقال رؤية كافة ملفاته وملفات الضبط وملفات التوثيق ايضا (اى انك لم تعتد تحتاج الى بعد الان )
-البحث عن حزمة

$ yum search KEYWORK
حيث KEYWORK هى اى كلمة تقودك للعثور على الحزمة التى تريدها , مثلا انا سمعت من احد صدقائى عن محرر يسمى geany واريد ان اعرف هل عو موجود او لا , ببساطة اقوم بالبحث عنه
$
yum search geany
======= Matched: geany =====
geany.x86_64 : A fast and lightweight IDE using GTK2
geany-devel.i386 : Header files for building Geany plug-ins
geany-devel.x86_64 : Header files for building Geany plug-ins

ظهر هنا عدد من الحزم التى احتوت فى وصفها او اسمها كلمة geany , وكما ترون ايضا من اخر اسم الحزمة ان نظامى هو فيدورا x86_64 ,
طبعا الحزمة التى نريدها هى geany.x86_64 وهى ملف ثنائى , تنفيذى جاهز للاستخدام مباشرة بدون ان تقوم ببناءه من المصدر (Compile From Source ) اى انك سوف تستخدمه مبشارة بعد تثبيته
لاحظ هنا انك وجدت حزم geany التطويرية والتى قد تحتاجها اذا اضطررت الى عمل compile لبرنامج يحتاج الى geany
شئ اخر احياننا تقوم بالبحث عن حزمة فلايظهر لك فى نتائج البحث سوى حزمة واحدة وليست خى الحزمة التى تريدها ولا حتى وصفها يحتوى على الكلمة التى كتبتها ,
مثلا انا احتاج الى برنامج kcachegrind لمتابعة اداء تطبيق معين عن طريقة عملية profiling وباتالى ذهبت الى yum لأسأله كالتالى

$ yum search kcachegrind
====== Matched: kcachegrind =====
kdesdk.x86_64 : The KDE Software Development Kit (SDK)

على الرغم من ان حزمة kdesdk ليست هى المطلوبة ولا حتى وصفها يحتوى كلمة kcachegrind ?
هذا ببساطه لأن حزمة kdesdk هى عبارة من اكثر من تطبيق وليس تطبيق واحد,والتطبيق اللذى اريده من ضمن تلك الحزمة ولهذا ظهرت فى نتامج البحث
- التثبيت : ونستخدم الخيار install ويلية اسم الحزمة كالمثال التالى لتثبيت حزمة kdesdk

# yum install kdesdk
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package kdesdk.x86_64 0:4.2.1-1.fc10 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
============================================
Package Arch Version Repository Size
============================================
Installing:
kdesdk x86_64 4.2.1-1.fc10 updates 7.2 M
Transaction Summary
============================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total size: 7.2 M
Is this ok [y/N]:
طبعا سوف يذهب yum للايجاد الحزمة والبحث عما اذا كانت الحزمة تحتاج الى حزم اخرى للعمل بطريقة صحيحة ويعرض لك كل شئ وحجم download اللذى سوف يقوم بعمله ويطلب منك الموافقة على بدأ تحميل الحزمة وتثبيتها
-الحذف مع yum : تستخدم الخيار remove متبوعا بإس الحزمة المراد ازالتها مثلا لحذف حزمة وايضا اذا كانت هناك حزم تعتمد على هذة الحزمة سوف يخبرك أيضا بهذا ويطلب منك الوافقة , مثلا لحذف حزمة wallpapoz

# yum remove wallpapoz
-التحديث الكامل للنظام

# yum update
*** بقى اخيرا ان نتناول بعض مشاكل yum والتى كما قلت مسبقا صغيره وحلها اصغر , اذا وجدته توقف عند تقطة معينة او حدثت مشاكل يمكنك تنفيذ الامر(الامر لايؤثر على الحزم الموجوده حاليا)

# yum clean all
وسوف يثوم بمسح الكاش والاشياء الاخرى وفى حالة حدثة مشكله لاتحاول السؤال قبل تنفيذ ذلك الامر
-التعددية : مستخدمى توزيعة فيدورا يظهر لهم غالبا تنويهات بتحديثات جديدة واحياننا يجدوها مزعجة (انا احب ان اثوم بالتحديث بمعرفتى انا) , الحل System->Preferences->Personal->Sessions ,وهو برنامج يتكم فى البرامج التى تعمل فور دخولك مباشرة
ثم ازال PackageKit Update Manger وهو تطبيق يقوم بعملية التحديث ويخبرك بها
-احياننا تجد ان yum يقوم بعملية تحميل او اى شئ ويعلق نهائيا ولايريد الخروج مع Ctrl+C او اى شئ اخر وحتى لو قمت باغلاق الترمنال لن يتنهى الامر بل سيظل yum يعمل فى الخلفية ولو حاولت اتسخدام yum سوف تظهر لك الرسالة

Existing lock /var/run/yum.pid: another copy is running as pid 24882.
Another app is currently holding the yum lock; waiting for it to exit...
والحل هو قتل yum (مع سبق الاصرار والترصد) بالامر التالى

# killall -9 yum
مع كامل اعتذارى للتطبيق yum على قتله !
انتهى المقال
الرخصة : Creative Commons



avp rpm








من مواضيع CLassiC
توقيع CLassiC
 
أحد يقدر يجي جنبي


CLassiC غير متواجد حالياً   رد مع اقتباس