Home Previous Up Next3.5 تركيب الحزم المصدرية
حول
المحتويات
مشاريع
ثواب
مقالات
تنزيل
English

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

الميّزة الرئيسية في البرمجيات الحرة هي توفّر الكود المصدري، سنتعلم في هذا الفصل كيف نحولها إلى ملفات تنفيذية وكيف نركبها بحيث تستطيع تشغيلها فقط بكتابة اسمها. سنناقش كيفية الحصو عليها عبر CVS وكيفية تطبيق تعديلات تسمى الرقع patches.

اقتباس هذا الفصل:

  • "الكلام رخيص. أرني الكود."
        -- لينوس تورفلدز

محتويات هذا الفصل:

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

 تحذير

تنزيل برنامج من الملف المصدري قد يشوش نظام ادارة الحزم في التوزيعة خصوصا في مسألة الإعتمادية. لتفادي تشويش نظام الحزم استعمل الحزم المصدرية المخصصة لنظام الحزم في توزيعتك ثم تحولها إلى حزمة جاهزة من أمثلة تلك الحزم المدرية ملفات '.src.rpm' في التوزيعات المعتمدة على RPM (مثل ريدهات) أو ملفات ديبيان الثلاثة معاً '.orig.tar.gz' و '.diff.gz' و '.dsc'، الحل الآخر هو نقل الملفات خارج تحكم نظام الحزم مثل /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' لتغيير مكان تركيب البرنامج.

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

bash$ ./configure --enable-fribidi && make
bash$ su
password:
bash# make install
bash# exit
bash$ mkdir ~/.mlterm
bash$ echo "ISO10646_UCS2_1 =\
 20,-misc-fixed-medium-r-normal--20-200-75-75-c-100-arabeyes-1;" \
 > ~/.mlterm/font
bash$ echo -e "ENCODING = utf8\nfontsize = 20" \
 > ~/.mlterm/main

في حال حاولت تصنيف البرنامج أكثر من مرة وكنت تريد اعادة المحاولة أو كنت تريد التأكد من ازلة كل ملفات المحاولات السابقة والبدء من بيئة نظيفة يمكنك تنفيذ 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/local' install بدلا من make install لينزل البرنامج في /usr/local بدلاً من /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

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 CVS_RSH='ssh'
bash$ export CVSROOT=\
":pserver:anonymous@cvs.glchess.sourceforge.net:/cvsroot/glchess"
bash$ cvs login
bash$ cvs -z9 checkout glchess
bash$ cd glchess
bash$ ./configure
bash$ make
bash$ su
bash# make install
لاحظ تحديد CVS_RSH ليستعمل ssh وهي الطريقة المعتمدة في sourceforge.net للوصول الآمن عن بعد، الخيار z لتحديد مستوى الضغط. يمكنك المشاركة في تطوير المشاريع عبر CVS فبعد الحصول على اسم دخول تستطيع تنزيل البرنامج ثم التعديل فيه ثم ترفع ما عدلت إلى الشبكة بواسطة cvs commit الخيار m لوضع تعليق عن التغيير الذي قمنا به ثم اسم الملف مثلاً
bash$ cvs commit -m "More Comments Added to file1.c" file1.c
يجب استعمال الخيار kb مع الملفات غير النصية.

المحتويات
حقوق النسخ والملكية الفكرة
ما هو لينكس؟
كيف تركب نظام لينكس؟
حقوق النسخ المرفوعة
وثائق التخويف

عرب-آيز
مجتمع لينكس العربي
موسوعة ثواب
موسوعة ويكيبيديا
تعريف البرمجيات الحرة
تعريف مفتوحة المصدر
LinuxToday
Linux.org
Linux.com
SlashDot
FreshMeat
LWN.net
توزيعات لينكس
النسخة الإسلامية لأوبنتو
عَرَبيان
جواثا (أول مسجد في أوروبا)
المزيد من التوزيعات هنا

إسلاميات
    برامج:
بريمج أوقات الصلاة
بريمج التقويم الهجري
    صوتيات:
محاضرات: قصص الأنبياء (نبيل العوضي)
أناشيد
اطلب نسختك مجاناً
لكي تصلك أقراص لينكس أوبونتو Ubuntu أصلية مجاناً والتوصيل مجاناً لن تدفع فلساً واحداً ولن تجبر على رؤية دعايات. كل ما عليك هو أن تنقر هنا.
مقالات
    تقنية:
تسجيل وتحويل الصوتيات
تعريف الماسح الضوئي في لينكس
    ساخرة:
من أجل ذلك لا تقرأ
الفيلة والصراع العربي الإسرائيلي
بلاغات
التبليغ عن إعلانات غير مرغوبة
عثرات وأخطاء إملائية
وصلات لا تعمل:

 

ننصح باستخدام متصفحات الوب الحرة، جرب ثعلب النار الآن

يمكنك الحصول على الكثير من البرامج الحرة عالية الجودة من هنا مجاناً
proud to be 100% Microsoft FREE GNU FDL
التدخين حرام

كن كحامل المسك ولا تكن كنافخ الكير

Generously Hosted by www.JadMadi.net

Previous Up 3.5 تركيب الحزم المصدرية Next
Copyright © 2007, Muayyad Saleh AlSadi