3.5 تركيب الحزم المصدرية كتاب لينكس الشامل >>

3.5 تركيب الحزم المصدرية

الفهرس

3.5.1 قبل البدء

إن الملفات المفات المصدرية التي أتحدث عنها هنا ليست حزم .src.rpm وإنما هي ملفات مضغوطة مثل .tgz أو .tar.bz2 ضع هذه الملفات في المجلد البيت ثم فك ضغطها اما باستعمال برنامج رسمومي مناسب أو بالنقر بالزر الأيمن ثم extract أو بطباعة الأوامر المناسبة

bash$ tar -xvzf filename.tar.gz
اذا كان الملف المضغوط من نوع tar.bz2 نستخدم tar -xvjf filename.tar.bz2 سيظهر مجلد جديد ادخل إليه وابحث عن ملف INSTALL أوREADME أو ماشابه وألق نظرة عليه من محرر النصوص المفضل لديك أو من سطر الأوامر اكتبless INSTALL ثم اضغط q للخروج
bash$ cd filename
bash$ ls
INSTALL	blah.c	foobar.c	make	configure
bash$ less INSTALL

warningتحذير

تنزيل برنامج من الملف المصدري قد يشوش نظام ادارة الحزم في التوزيعة خصوصا في مسألة الإعتمادية. لتفادي تشويش نظام الحزم يتم نقل الملفات إلى /usr/local (نتحكم بذلك من خلال prefix)

3.5.2 التصنيف Compiling

من هنا قد تختلف طريقة المتابعة بحسب البرنامج الذي تتعامل معه ولكن بشكل عام الخطوات هي بطباعة الأوامر من المجلد الذي ظهر عندنا

bash$ ./configure
bash$ make
bash$ su
password:
bash# make install
bash# exit
bash$ 
السطر الأول يقوم بعمل إعدادات خاصة بالنظام الموجود لديك. إذا فشلت هنا لا تتابع، وغلباً سبب الفشل هو عدم وجود حزم التطوير وهي حزم تنتهي ب devel ؛ لحل المشكلة استعمل أداة إدارة الحزم لإضافة مثل هذه لحزم فإذا كنت تعلم أنه برنامج يحتاج gtk يجب أن تركّب gtk-devel (طبعاً هذا جزء من الاسم لأن هناك أرقام الإصدار تفصل بين الكلمتين ) السطر الثاني يقوم بتوليد البرنامج ثم التحول إلى مستخدم جذر ثم تركيب البرنامج عادة بنقله إلى المجلدات المناسبة ، قد نمرر له بعض الإعدادات الخاصة بتغير المجلد الذي سينقل إليه أو نطلب اعداده ليناسب معالج أكثر من آخر أو لحذف معلومات التدقيق debug مثلا ./configure --prefix='/usr/X11R6' لتغيير مكان تركيب البرنامج.

في حال حاولت تصنيف البرنامج أكثر من مرة وكنت تريد اعادة المحاولة أو كنت تريد التأكد من ازلة كل ملفات المحاولات السابقة والبدء من بيئة نظيفة يمكنك تنفيذ make clean أو make mrproper قبل كل شيء. اذا كان البرنامج يعتمد على برامج معينة يجب أن تكون موجودة من قبل نفذ make dep قبل make واذا كان هناك أكثر من برنامج في هذه الحزمة وكنت تريد عمل واحد منها فقط يمكنك عمل ذلك بكتابة make ثم اسمه. عند الإنتهاء من كل شيء قد ترغب في حذف الملفات المؤقته ذلك بتنفيذ make clean

من الأمثلة على الخيارات التي يمكنك تمريرها إلى make لتعديل بعض الخيارات هي make CC='gcc -s' ليزيل معلومات التدقيق Debuging information حتى يصبح البرنامج أصغر أو مثلا لعمل تحسين على أداء البرنامج optimization
make CC='gcc -s -O2 -fexpensive-optimizations -fomit-frame-pointer -mpentium' الخيار O2 هو متوى التحسين (يمكنك عمل حتى 6 ولكن 2 تنجح و 3 فما فوق غير مضمونة) خيرات أخرى مثل foptimize-register-move و fregmove و frerun-loop-opt وحتى ffast-math هذه الأخيرة من أجل القيام بحسابات الفاصلة العائمة(الكسور) بطريقة أسرع ولكن تقريبية ودون تتبع الأخطاء ولتحديد نوع المعالج يمكنك اضافة -march=TARGET و -mcpu=TARGET يقول الأستاذ عصام بيازيدي أن أفضل طريقة لتعديل الخيارات تلك ليست من خلال CC بل من خلال XXCFLAGS (إن لم تخني الذاكرة) لكن كلا الطريقتين تعملان. واذا كنت تريد تنزيله في غير المكان الإفتراضي استخدم مثلا make PREFIX='/usr/X11R6' install بدلا من make install لينزل البرنامج في /usr/X11R6 بدلاً من /usr (هذه الحيلة ربما تكون مفيدة إذا أردت الجمع بين wine و wineX-CVS)

3.5.3 الرقع patching

قد تحتاج بعض الحزم إلى رقع عن طريق برنامج patch قبل أن تركّب ويكون ذلك عادة بتنفيذ patch -Np1 -i /path/to/file.patch أو patch -b -p0 < /path/to/file.patch بحسب طريقة توليد ملف الرقعة patch بواسطة diff. ويكون ذلك قبل ./configure هذا مثال يوضح ذلك : نزل الملف المصدري ل less وهو less-378.tar.gz و الرقعة الخاصة بها وهي less_composing.patch.tgz وخزنهما في البيت ثم نفذ

bash$ tar xvzf less-378.tar.gz
bash$ cd less-378
bash$ tar xvzf ../less_composing.patch.tgz
bash$ patch -b -p0 < less_composing.patch
bash$ ./configure
bash$ su
bash# make && make install

مثال آخر كيفية تركّب برنامج mlterm سطر الأوامر متعدد اللغات ، قبل تركيب هذا البرنامج تحتاج إلى تركيب حزمة ثنائية الإتجاه fribidi وحزمة التطوير الخاصة بها fribidi-devl من أقراص توزيعتك أو من مواقع التزيل الخاصة بها انظر الوصلات

3.5.4 الحصول عليه من CVS

CVS هي اختصار ل Concurrent Versions System. كما تعلم برامج لينكس هي برامج كتبها أكثر من شخص ومعظمهم لم يلتقوا ولم يعموا في بيئة مادية واحدة بل عبر الفضاء الافتراضي كما يحلو للإعلام أن يسميه. يساعد هذا البرنامج مدير المشروع على إدارة الإصدارات المختلفة والتعديلات التي يقوم بها كل مبرمج وذلك بسرعة وبمساحة صغيرة.

الحصول على CVS للمشروع يعطيك فرصة الحصول على أحدث نسخة. باسم وفي دليلك البيت اكتب export CVSROOT=":USER:PASSWORD@HOST/PROJ/DIR" حيث USER و PASSWORD هي الاسم وكلمة السر التي يزودك بها مدير المشروع و HOST هو العنوان و الباقي هو اسم الدليل. ثم اكتب cvs login للدخول و cvs checkout PROJ لتنزيل المشروع حيث PROJ هو اسم المشروع. سيفتح الأمر مجلد باسم المشروع ادخله بأمر cd متبوع باسم المجلد. ستجد هناك الملفات المصدرية (مع مجلد زائد اسمه CVS إذا كنت لا تريد تطوير البرنامج احذفه) ثم قم بالخطوات التقليدية لتصنيفه. هذا المثال لطريقة تركيب glchess من المصدر عبر CVS

bash$ export CVSROOT=\
":pserver:anonymous@cvs.glchess.sourceforge.net:/cvsroot/glchess"
bash$ cvs login
bash$ cvs -z3 checkout glchess
bash$ cd glchess
bash$ ./configure
bash$ make
bash$ su
bash# make install
يمكنك المشاركة في تطوير المشاريع عبر CVS فبعد الحصول على اسم دخول تستطيع تنزيل البرنامج ثم التعديل فيه ثم ترفع ما عدلت إلى الشبكة بواسطة cvs commit الخيار m لوضع تعليق عن التغير الذي قمنا به ثم اسم الملف مثلاً
bash$ cvs commit -m "More Comments Added to file1.c" file1.c


<< السابق كتاب لينكس الشامل التالي >>