المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح طريقة تركيب install باكج ال RPM ومعالجة مشكلة ال dependency



romaissa
11-02-2013, بتوقيت غرينيتش 01:59 AM
بــــــسم الله الرحمن الرحيـــــــــــم
السلام عليكم ورحمة الله وبركاته



### شرح طريقة تركيب install باكج ال RPM ومعالجة مشكلة ال dependency من الآلف الى الياء بأمر الله ###



- تنصيب setup البرامج او الباكجات packages هو أمر نقوم به كمديرين للسيرفر SERVERات وذلك عند حاجتنا الى برنامج لكى يضيف مزايا أكثر للسيرفر SERVER ويعطينا أيضا امكانيات أفضل
- تنصيب setup الباكج سهل جدا بامر الله ولكنه فى بعض الاحيان يتطلب الى الصبر
- الباكج هى ملف قابل للتنفيذ executable وذلك تحت بيئة لينكس وينتهى دائما بالامتداد rpm
- يتم تنصيب setup الباكجات باستخدام برنامج ال RPM (Redhat Package Manager) وهو الذى يمنحنا التحكم وادارة الباكجات ,مثل تنصيب setup, تحديث update, ازالة, والاستعلام عن باكج وغيرها من مهام ادارية للباكجات الموجودة على الخادم server ,,,

* ما الذى نحتاجه لكى نستطيع تنصيب setup باكج ؟؟
1) معرفة عامة وبسيطة عن ملف الباكج وأجزائه
2) موقع لتنزيل الباكج من خلاله
3) اسم الباكج المراد تنصيب setupها
4) اختيار وتحديد الباكج المناسبة لسيرفر SERVERنا
5) تنصيب setup الباكج
6) معالجة باكجات ال dependency (ان تم احتياجها)


1) قبل ان يتم التعامل مع ملف الباكج فانه يلزم معرفة مما يتكون ,حيث يتكون ملف الباكج من التالى :

رمز PHP:

<code style="white-space:nowrap"> <code> Packagename-version-release.architecture.rpm
</code> </code>

- ال Packagename , هو اسم البرنامج المراد تنصيب setupه

- ال version , هو رقم اصدار البرنامج (مثل الاصدار الآول , الثانى , ...وهكذا)

- ال release , هو رقم نسخة الاصدار (مثل الاصدار الآول النسخة الاولى , الثانية , ... وهكذا)

- ال architecture , هو اصدار البروسيسور الخاص بسيرفر SERVERك , وفيما يلى الاصدرات التى ستجدها متوفرة :

الاصدار Noarch ,بمعنى لا اصدار محدد اى ان الباكج ستعمل على اى اصدار للبروسيسور بدون اى مشاكل بامر الله

الاصدار 1386 ,للآنظمة ذات ال 32 bit X68

الاصدار I586 ,للبروسيورز الخاصة بالجيل الآول Pantium I وبروسيسورز من النوع AMD

الاصدار I686 ,للبروسيسورز الخاصة بالجيل الآول, الثانى ,الثالث, والرابع Intel® Pentium® II, Intel Pentium III, Intel Pentium 4 , وايضا بروسيسورز من النوعAMD® Athlon, و AMD Duron

الاصدار X86_64 ,للآنظمة ذات ال 46 bit مثل البروسيسورز AMD Athlon64, AMD Opteron, Phenom and Intel EM64T (Core 2 Duo, Core 2 Quad)

الاصدار Ppc ,للآنظمة ذات ال 32 bit من النوع IBM® POWER, IBM eServer™ pSeries®, and IBM eServer iSeries

2) مواقع تنزيل الباكج كثيرة جدا ومنها هذا الموقع على سبيل المثال
http://rpm.pbone.net (http://www.swalif.net/softs/redirect.php?links=http://rpm.pbone.net/)
(هذا هو الموقع المفضل لدى وهو ما سيتم التعامل معه اثناء الشرح طريقة بأمر الله)

3) لكى تقوم بانزال باكج فانه يجب عليك ايضا معرفة اسم الباكج المطلوب تنصيب setupه

4) الآن لا ينقصنا لتنزيل اى باكج سوى تحديد اى باكج المناسبة للسيرفر SERVER الخاص بنا , من خلال ما سبق شرح طريقةه فالمكتمل لدينا الآن هو التالى

رمز PHP:

<code style="white-space:nowrap"> <code> Packagename(ok)-verson(ok)-release(ok).architecture(no).rpm(ok)
</code> </code>

لدينا اسم الباكج , وعليه سنختار احدث اصدار واحدث نسخة والتى كما اتفقنا ستنتهى بامتداد rpm ,ولكن اى باكج متوافقة مع البروسيسور الخاص بسيرفر SERVERنا ؟؟؟

لمعرفة ذلك ولتحديد الباكج المناسبة لنا ,فانه يلزمنا تحديد نوع البروسيسور الخاص بالخادم server, وذلك من خلال الآمر التالى :
رمز PHP:

<code style="white-space:nowrap"> <code> uname –p
</code> </code>

ناتج هذا الآمر سيوضح لنا نوع البروسيسور الخاص بالسيرفر SERVER وعليه سنختار الباكج المناسبة له ,مثال i386

ولمعرفة اسم نسخة نظام التشغيل الخاص بالسيرفر SERVER حتى يسهل علينا اكثر فى اختيار الباكج , نستخدم الامر التالى
كود code:

رمز PHP:

<code style="white-space:nowrap"> <code> cat /etc/redhat-release
</code> </code>


ناتج هذا الآمر سيوضح اسم نسخة نظام التشغيل الخاصة بالسيرفر SERVER, مثال CentOS release 5.5 Final

5) الآن نذهب الى الموقع http://rpm.pbone.net/ (http://www.swalif.net/softs/redirect.php?links=http://rpm.pbone.net/) , ونقوم بالبحث عن الباكج المطلوبة ومن ناتج البحث نختار الباكج المتوافقة مع التالى :
- نظام التشغيل الخاص بنا
- نوع البروسيسور الخاص بالسيرفر SERVER

عند استخدام الموقع فى البحث عن باكج فانه هناك عدة خيارات للبحث ,كما هو موضح فى الصورة التالية

http://alr4h.com/search.JPG


- الاختيار الآول ,تحدده فى حالة اردت ان تحصل على باكج تحتوى على ملف معين او برنامج معين ,مثال , libname.so او libname

- الاختيار الثانى ,تحدده فى حالة اذا اردت ان تبحث عن روابط اف تى بى لتزيل الباكج من خلالها مثال , packagename او libname او filename

- الاختيار الثالث ,تحدده فى حالة اذا اردت ان تبحث عن اسم باكج محدد اى انك ستقوم بادخال اسم باكج وليس مكتابات او ملفات خاصة بالباكج, مثال packagename

- الاختيار الرابع , تحدده فى حالة اذا اردت ان تبحث عن روابط اف تى بى لتزيل الباكج من خلالها ولكن البحث يكون باسم الباكج فقط, مثال packagename

بعد البحث سنجد نسخ عديدة من الباكج , قم باختيار الباكج المناسبة لسيرفر SERVERك ونسخة نظام التشغيل الخاصة بك, بعد اختيار الباكج ستجد روابط عديدة لتنزيل الباكج من خلالها , على سبيل المثال اخترت التالى


رمز PHP:

<code style="white-space:nowrap"> <code> http://www.domain.com/flvtool2-1.0.6-1.el5.rf.noarch.rpm
</code> </code>

هذا الامر سيقوم بتنصيب setup الباكج مباشرة على الموقع الموجود به ,دون الحاجة الى انزالها ومن ثم تنصيب setupها

تحليل الآمر rpm –Uvh

- برنامج ال rpm ,هو البرنامج المسؤل عن ادارة الباكج كما رأينا سابقا

- اوبشن ال U ,معناه تحديث update او Upgrade وهو سيقوم باعادة تنصيب setup الباكج مرة اخرى فى حالة اذا كانت موجودة ولكن بنسخة اقدم او تنصيب setupها اذا كانت غير موجودة

- اوبشن ال v ,معناه جعل عملية التنصيب setup مرئية او verbose ,وهو مفيد جدا لكى تكون على علم بما يتم عمله اثناء التنصيب setup

- اوبشن ال h ,معناه الهاش او hash حيث يقوم باظهار هاشات (#) اثناء عملية التنصيب setup

الان المفترض ان يتم تنصيب setup البرنامج بدون اى مشاكل الا فى حالات مثل :

- وجود نسخة تطابق النسخة التى يتم تنصيب setupها مما يؤدى الى ظهرو خطأ عدم التوافق او conflicts , ولكى تجبر عملية التنصيب setup على الاكتمال واهمال هذا الخطأ فانك ستحتاج الى استخدام اوبشن اخر وهو --force ,لكى يصبح الآمر كالتالى :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –Uvh --force http://www.domain.com/flvtool2-1.0.6-1.el5.rf.noarch.rpm
</code> </code>

- احتياج البرنامج الى برنامج أخر يسمى dependency ,وهو برنامج يعتمد عليه برنامج أخر (فى مثالنا هو flvtool2 ) بشكل اساسى فى عمله, لذلك لا يتم تنصيب setupه الا بعد ان يكون ال dependency موجود ومثبط على النظام, ولكن لتجبر عملية التنصيب setup على الاستكمال واهمال عدم وجود ال dependency فاننا سنحتاج الى اوبشن --nodeps ,لكى يصبح الآمر بالشكل التالى :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –Uvh --nodeps http://www.domain.com/flvtool2-1.0.6-1.el5.rf.noarch.rpm
</code> </code>




om/flvtool2-1.0.6-1.el5.rf.noarch.rpm (http://www.swalif.net/softs/redirect.php?links=ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/x86_64/dag/RPMS/flvtool2-1.0.6-1.el5.rf.noarch.rpm) 6) كيف يتم معالجة او تنصيب setup برامج ال dependencies ؟؟

- المشكلة الآولى التى تواجها عند تنصيب setup اى باكج (ذات الامتداد rpm ) تكمن فى احتياج الباكج لآكثر من برنامج dependency والتى لا توجد عندما يتم تنصيب setup برنامج فى صيغة المصدر او source ذات الامتداد .tar.gz او غيرها من امتدادات اخرى

- لحل مشكلة ال dependencies فانه يوجد حلين لا ثالث لهما :

الحل الآول , هو ان يتم تنصيب setup كل dependency يدويا ,وهو امر شاق وياخذ وقت طويل وذلك لآن كل dependency قد تعتمد على برامج او dependencies اخرى

الحل الثانى ,هو اضافة مسار الموقع يسمى repository الى برنامج ال yum واستخدام برنامج ال yum فى تنصيب setup الباكج حيث بعد اضافة ال repository اليها فان برنامج ال yum سيقوم بتنصيب setup الباكج وايضا سيقوم بتنصيب setup كل ما يحتاجه الباكج من dependencies بشكل اوتوماتيكيا ,وبالتالى سيوفر وقت وجهد ولهذا فانه أفضل حل لمشكلة ال dependencies


كيف يتم حل مشكلة ال dependencies باستخدام ال repository فى برنامج yum ؟؟؟
- لاضافة مسار ال reposritory الخاص بموقع http://rpm.pbone.net/ (http://www.swalif.net/softs/redirect.php?links=http://rpm.pbone.net/) الى برنامج ال yum سنحتاج الى :

1) ايجاد ال repository ,وهذا نستطيع الحصول عليه من الموقع من خلال اختيار
YUM REPO (http://www.swalif.net/softs/redirect.php?links=http://rpm.pbone.net/index.php3/stat/39)من قائمة الموقع على اليسار ,وبعد الضغط عليها ستدخل الى صفحة تقوم بتعبئة النموذج لكى تسجل بالموقع ,والنموذج كالتالى :

http://alr4h.com/register.JPG


- بعد اتباع الخطوات من 1 الى 4 نضغط على زر register لكى يتم ارسال رسالة التفعيل الى حسابك البريدى الذى قمت بادخالة, حيث ستجد الرسالة باسم PBONE email validation ,بعد الدخول الى الرسالة ستجد رابط بعد الضغط عليه ستجد الرسالة التالية :


رمز PHP:

<code style="white-space:nowrap"> <code> You have successfully confirmed your account. Enter your username and your password to log in. Now you have 14-day free trial access to PBONE yum repository. After logon click on Yum Conf to receive yum configuration
</code> </code>

معنى الرسالة هو الاتى, انه قد تم تأكيد حسابكم وانه بامكانك الدخول الى الموقع باستخدام اسم المستخدم وكلمة المرور, وان مسار ال repository تستطيع انزاله من خلال الضغط على كلمة Yum Conf التى ستظهر لك بعد تسجيل الدخول فى نفس الصفحة ,وايضا مسار ال repository يمكن استخدامه لمدة 14 يوم فقط كفترة تجريبية

- بعد الضغط على كلمة yum conf ستذهب الى صفحة من خلالها يتم اعداد وضبط مسار ال repository وذلك بتحديد نقطتين فقط :

الآولى ,هى نوع او اصدار البروسيسور على السيرفر SERVER الذى سيتم اضافة مسار ال repository الى برنامج ال Yum عليه

الثانية ,هى اسم نسخة نظام التشغيل الخاصة بالسيرفر SERVER
فمثلا ,البروسيسور الخاص بى هو I386 واسم نسخة نظام التشغيل هو CentOS واصدارها 5 ,اذا اختيارى سيكون كالتالى :


http://alr4h.com/repository.JPG


بعد ذلك سنقوم بالضغط على كلمة generate ,وبعدها سيتم توليد مسار ال repository المتوافق مع السيرفر SERVER ويكون كالتالى :

http://alr4h.com/repo.JPG


الآن لكى نقوم باضافة مسار ال repository الى برنامج ال yum سنقوم باتباع الآتى ولكن بالترتيب :

1) نضيف مسار ال repository الى برنامج ال Yum وذلك بفتح كونفيج البرنامج واضافة المسار ,باستخدام التالى :


vi /etc/yum.conf[/SIZE]]




الان تم فتح كونفيج برنامج ال yum ,نضغط shift + g لكى نذهب الى أخر سطر فى الكونفيج, ونضغط Insert لكى نبدأ فى التعديل ونضغط end لكى نذهب الى نهاية أخر سطر ,ثم نضغط enter حتى نكون فى سطر جديد ,نذهب الى مسار ال repository فى الموقع وننسخه الى ملف نصى ونعدل عليه باضافة كلمة مرور الحساب ,بعد ذلك نؤشر على جميع سطور المسار ونضغط ctrl + c لكى يتم نسخها ,الآن نذهب الى كونفيج ال yum فى أخر سطر ونضغط كليك يمين بداخل الشيل حتى يتم لصق سطور مسار ال repository وهى :

رمز PHP:

<code style="white-space:nowrap"> <code> &#91;55i386&#93; name=PBONE CentOS 5 i386 baseurl=http://yum.pbone.net/55/i386/ gpgcheck=0 proxy=http://proxy.pbone.net:3127/ proxy_username=account-name proxy_password=account-password
</code> </code>


ثم بعد ذلك نضغط على زر Esc ثم نكتب :wq ثم نضغط Enter, لكى نقوم بحفظ ما تمت اضافته الى كونفيج برنامج ال yum

2) نستخدم برنامج ال yum فى تنصيب setup الباكج المطلوبة وذلك باستخدام الآمر التالى

رمز PHP:

<code style="white-space:nowrap"> <code> yum –y install flvtool2
</code> </code>

اوبشن ال y ,مهم جدا لآن معناه انك موافق yes على كل ما سيقوم برنامج ال yum بتنزيله من dependencies من اجل الانتهاء من تنصيب setup الباكج المطلوبة


بعض الآوبشنز المهمة لبرنامج ال rpm ,

- اوبشن ال i ,يستخدم فى التنصيب setup install ,مثال :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –ivh packagename.version.release.architecture.rpm
</code> </code>


- اوبشن ال e ,يستخدم فى ازالة erase باكج من على نظام التشغيل ,مثال :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –e packagename
</code> </code>


- اذا كان هناك باكج واحدة مثبتة باكثر من اصدار بالخطأ وأدت الى حدوث مشكلة عدم توافق conflicts , وتريد ان يتم ازالة الباكج بجميع اصداراتها, تستخدم اوبشن ال --allmatches ,مثال :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –e --allmatches packagename
</code> </code>


- اوبشن ال q ,يستخدم فى الاستعلام query عن باكج, ومعرفة اذا كانت موجودة على النظام ام لا ,مثال :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –q packagename
</code> </code>

- لعرض جميع الباكج الموجودة او المثبتة على النظام يتم استخدام الآمر التالى :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –qa
</code> </code>

وبامكاننا عرض الناتج صفحة صفحة باستخدام الآمر التالى :

رمز PHP:

<code style="white-space:nowrap"> <code> rpm –qa | more
</code> </code>

- للبحث عن باكج معين ,نستخدم الآمر التالى :
رمز PHP:

<code style="white-space:nowrap"> <code> rpm –qa | grep packagename
</code> </code>


تم بفضل الله العلى العظيم







https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى