apt-get source source-package-name
. يحتاج هذا الأمر لإضافة سطر deb-src
في الملف /etc/apt/sources.list
، وتحديث ملف الفهارس (عبر apt-get update
). يجب أن تكون هذه الشروط محققة مسبقاً إذا اتبعت التعليمات من الفصل الذي يتحدث عن إعدادات APT (انظر قسم 6.1, “تعبئة الملف sources.list
”). لكن لاحظ أنك سوف تنزّل الحزم المصدرية من نسخة دبيان المحددة في سطر deb-src
. إذا كنت تريد الحصول عليها من نسخة دبيان أخرى، قد تضطر لتنزيلها يدوياً من مرآة دبيان أو من موقع الوب. هذا يعني تنزيل ملفين أو ثلاثة (امتداداتها *.dsc
— أي Debian Source Control — و *.tar.comp
وأحياناً *.diff.gz
أو *.debian.tar.comp
— حيث تأخذ comp إحدى القيم gz
، bz2
أو xz
حسب أداة الضغط المستخدمة)، بعدها استدعاء الأمر dpkg-source -x file.dsc
. إذا كان الوصول للملف *.dsc
ممكناً بشكل مباشر من عنوان URL، فيمكنك استخدام طريقة أبسط من هذه للحصول على جميع الملفات، وهي استخدام الأمر dget URL
. يجلب هذا الأمر (الذي تجده في الحزمة devscripts) ملف *.dsc
من العنوان المحدد، بعدها يحلل محتوياته، ويحضر الملف أو الملفات التي يشار إليها فيه. بعد تنزيل كل شيء، سوف يفك الضغط عن الحزمة المصدرية (ما لم تستخدم الخيار -d
أو --download-only
).
2:4.1.17+dfsg-2
، يمكننا إنشاء الإصدار 2:4.1.17+dfsg-2falcot1
، الذي يبيّن منشأ الحزمة بوضوح. هذا يجعل رقم إصدار الحزمة أعلى من الإصدار الذي توفره دبيان، بحيث يمكن تثبيت الحزمة بسهولة كتحديث للحزمة الأصلية. أفضل طريقة جراء هذا التغيير هي استخدام الأمر dch
(Debian CHangelog) من الحزمة devscripts، عبر استدعائه بالشكل dch --local falcot
مثلاً. سيستدعي هذا الأمر محرر نصوص (sensible-editor
— يجب أن يكون هذا محررك الافتراضي إذا كان مذكوراً في أحد متغيري البيئة VISUAL
أو EDITOR
، وإلا فسوف يستدعى المحرر الافتراضي) ليسمح لك بتوثيق الاختلاف الذي تقدمه هذه الإصدارة. يظهر لنا هذا المحرر أن dch
قد غيّر debian/changelog
بالفعل.
debian/rules
، الذي يقود الخطوات المختلفة في عملية بناء الحزمة. في أبسط الحالات، ستجد السطور التي تتعلق بالإعدادات الافتراضية (./configure …
) أو عملية البناء الفعلية ($(MAKE) …
or make …
) بسهولة. إذا لم تُستَدعى هذه الأوامر صراحة، فالأغلب أن هناك أمر صريح آخر يستدعيها، وفي تلك الحالة عليك الرجوع إلى وثائق تلك الأوامر حتى تعرف طريقة تغيير السلوك الافتراضي. قد تحتاج في الحزم التي تستخدم الأمر dh
لتعديل سلوك الأمرين dh_auto_configure
وdh_auto_build
(انظر صفحات الدليل الخاصة بهما لمعرفة طريقة عمل هذا).
debian/control
أيضاً اعتماداً على طبيعة التغييرات المحلية التي أجريتها على الحزمة، يحوي هذا الملف وصفاً للحزم المولّدة. على وجه الخصوص، يحوي هذا الملف سطور Build-Depends
تتحكم بقائمة الاعتماديات التي يجب تلبيتها عند بناء الحزمة. تشير هذه الاعتماديات غالباً إلى نسخ الحزم الموجودة في التوزيعة التي أتت منها الحزمة المصدرية، لكنها قد لا تكون متوفرة في التوزيعة المستخدمة للبناء. لا توجد طريقة مؤتمتة تبيّن هل الاعتمادية حقيقية أم أنها محددة فقط لضمان محاولة البناء باستخدام آخر نسخة من المكتبة — هذه هي الطريقة الوحيدة المتاحة لإجبار البانيات الآلية (autobuilder) على استخدام نسخة معينة من الحزمة أثناء البناء، لذلك يستخدم مشرفو دبيان في كثير من الأحيان اعتماديات لها أرقام محددة.
INSTALL
غالباً — على معرفة الاعتماديات المناسبة. في الحالة المثالية، يجب أن تتمكن من تلبية الاعتماديات ضمن التوزيعة المستخدمة للبناء؛ إذا لم تتمكن من ذلك، ستبدأ عملية تعاودية، حيث يجب نقل الحزم المذكورة في الحقل Build-Depends
خلفاً قبل أن تتمكن من نقل الحزمة المستهدفة. قد لا تحتاج بعض الحزم أن تنقلها خلفياً، ويمكن تثبيتها كما هي أثناء عملية البناء (إحدى الأمثلة البارزة هي debhelper). لاحظ أن عملية النقل الخلفي قد تتعقد سريعاً إذا لم تكن حذراً. لذلك، يجب تقليل المنقولات الخلفية إلى أقل ما يمكن.
.deb
). يدير الأمر dpkg-buildpackage
العملية كلها.
Build-Depends
، أو إذا لم تُثبَّت الحزم المناسبة. في هذه الحالات، يمكن تجاوز عملية التحقق عبر تمرير الخيار -d
إلى dpkg-buildpackage
. لكن تجاهل هذه الاعتماديات صراحة يعرضك لخطر إخفاق عملية البناء في مرحلة لاحقة. وأسوأ من ذلك، قد يبدو أن الحزمة تبنى بشكل صحيح لكنها لا تعمل بشكل سليم لاحقاً: فبعض البرامج تعطّل بعض مزاياها آلياً إذا لم تعثر على إحدى المكتبات المطلوبة أثناء البناء.
debuild
؛ الذي يستدعي dpkg-buildpackage
كالعادة لكنه يضيف أيضاً استدعاءً لبرنامج يجري عدة فحوصات للتحقق من اتفاق الحزم المولّدة مع سياسة دبيان. كما يُنظِّف هذا السكربت البيئة بحيث لا ”تُلوّث“ متغيرات البيئة المحلية عملية بناء الحزمة. الأمر debuild
هو أحد الأدوات من المجموعة devscripts، التي تتناسق مع بعضها وتشترك في بعض الإعدادات حتى تسهِّل مهمة مشرف الحزمة.