Tiger مشرف
عدد الرسائل : 1619 العمر : 35 تاريخ التسجيل : 22/02/2008
| موضوع: شرح تنزيل البرامج بrpm الإثنين أبريل 13, 2009 3:23 am | |
| السلام عليكم ورحمة الله وبركاته اليوم سوف يكون الموضوع سهل وبسيط ولفيدورا واخواتها فقط , عن rpm و ايضا yum لن يضر اولا معنى : rpm قديما كانت تعني Red Hat Package Manger ولكن عفا على الهذا المصلح الزمن وتغير ليكون Rpm Package Manger لانه لم يعد يستخدما بواسطة ريدهات فقط وأضف الى ذلك انه تم اعتماده كمدير للحزم اساسيا فى Linux Standard Base ( قاعدة لينكس الاساسية ) وهو مشروع بدعم من مؤسسة اللينكس (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 :يعطى مسارات ملفات التوثيق (Documentation 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
الازالة : لإزالة حزمة مثته حاليا (يجب عليك ان تكون حذرا جدا جدا عند حذف اى حزمة) :وهناك ايضا أكثر من هذا بكثير جدا فى man , أكتب الامرهذا ما يهمنى ان اعرفكم به حاليا مع 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 والتى كما قلت مسبقا صغيره وحلها اصغر , اذا وجدته توقف عند تقطة معينة او حدثت مشاكل يمكنك تنفيذ الامر(الامر لايؤثر على الحزم الموجوده حاليا) كود:
# 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 (مع سبق الاصرار والترصد) بالامر التالىمع كامل اعتذارى للتطبيق yum على قتله ! | |
|
golden flower مشرفة
عدد الرسائل : 2517 العمر : 35 تاريخ التسجيل : 28/04/2008
| موضوع: رد: شرح تنزيل البرامج بrpm السبت أبريل 18, 2009 3:50 am | |
| | |
|