Product SiteDocumentation Site

5.3. ساختار یک بسته سورس

5.3.1. قالب

یک بسته سورس معمولاً از سه فایل تشکیل شده است، یک فایل .dsc، یک فایل .orig.tar.gz و یک فایل .debian.tar.gz (یا .diff.gz). این فایل‌ها امکان ایجاد فایل باینری (فایل‌های .deb مورد بحث قرار گرفتند) از سورس کد برنامه را می‌دهد، که در قالب یک زبان برنامه‌نویسی نوشته شده است.
فایل .dsc یا Debian Source Control فایل کوتاهی است مبتنی بر استاندارد RFC 2822 (درست مانند فایل control که در قسمت قسمت 5.2.1, “توضیح: فایل control بررسی شد) که بسته سورس و محتویات آن را مشخص می‌نماید. این فایل توسط توسعه‌دهنده آن امضا شده است که صحت آن را نمایش می‌دهد. برای مطالعه بیشتر در این زمینه به قسمت 6.5, “بررسی صحت بسته‌ها” مراجعه کنید.

مثال 5.1. یک فایل .dsc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.62-3
Maintainer: Emfox Zhou <emfox@debian.org>
Uploaders: Raphaël Hertzog <hertzog@debian.org>
Homepage: http://zim-wiki.org
Standards-Version: 3.9.6
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/zim.git
Vcs-Git: git://anonscm.debian.org/collab-maint/zim.git
Build-Depends: debhelper (>= 9), xdg-utils, python (>= 2.6.6-3~), libgtk2.0-0 (>= 2.6), python-gtk2, python-xdg
Package-List:
 zim deb x11 optional arch=all
Checksums-Sha1:
 ad8de170826682323c10195b65b9f1243fd75637 1772246 zim_0.62.orig.tar.gz
 a4f70d6f7fb404022c9cc4870a4e62ea3ca08388 14768 zim_0.62-3.debian.tar.xz
Checksums-Sha256:
 19d62aebd2c1a92d84d80720c6c1dcdb779c39a2120468fed01b7f252511bdc2 1772246 zim_0.62.orig.tar.gz
 fc2e827e83897d5e33f152f124802c46c3c01c5158b75a8275a27833f1f6f1de 14768 zim_0.62-3.debian.tar.xz
Files:
 43419efba07f7086168442e3d698287a 1772246 zim_0.62.orig.tar.gz
 725a69663a6c2961f07673ae541298e4 14768 zim_0.62-3.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Signed by Raphael Hertzog

iQEcBAEBCAAGBQJUR2jqAAoJEAOIHavrwpq5WFcH/RsdzCHc1oXXxHitU23hEqMj
T6ok29M1UFDJDowMXW75jQ1nT4WPUtvEGygkCHeoO/PvjEvB0sjU8GQlX+N9ddSB
aHfqfAYmVhADNGxrXQT5inZXUa8qGeeq2Sqf6YcWtsnuD56lDbvxkyf/XYopoIEl
oltfl05z/AI+vYsW482YrCz0fxNAKAvkyuPhDebYI8jnKWeAANoqmKpsNc/HYyvT
+ZiA5o57OiGdOKT6XGy3/FiF3dkHiRY8lXW7xdr1BbIgulwl9UmiUNwuxwOYbQO7
edtjiTJqOaFUA0x1zB/XGv5tHr1MjP8naT+kfVoVHTOox51CDbeu5D3DZY4imcY=
=Wtoa
-----END PGP SIGNATURE-----
نکته اینکه بسته‌های سورس نیز وابستگی‌های مربوط به خود را دارند (Build-Depends) که کاملاً با وابستگی‌های موجود در بسته‌های باینری تفاوت دارد، چرا که شامل ابزاری جهت کامپایل کردن نرم‌افزار مورد نظر و ایجاد فایل باینری آن هستند.
فایل .orig.tar.gz آرشیو شامل سورس کد از توسعه‌دهنده اصلی برنامه است. از توسعه‌دهندگان بسته در دبیان تقاضا می‌شود که این فایل را به منظور سازگاری هر چه بیشتر با فایل اصلی برنامه، تغییر ندهند (که این کار توسط یک عملیات مقایسه‌ای انجام می‌شود) و به نقظه نظرات نویسنده اصلی احترام بگذارند.
فایل .debian.tar.gz شامل تمام تغییراتی است که توسط توسعه‌دهنده دبیان صورت گرفته است، به خصوص اضافه کردن دایرکتوری debian که دستورالعمل‌های لازم جهت ایجاد بسته باینری را به همراه دارد.

5.3.2. کاربرد در دبیان

بسته سورس پایه و اساس هر چیز دیگری در دبیان است. تمام بسته‌های دبیان از یک بسته سورس نشات می‌گیرند، تغییر در هر بسته دبیان مستلزم تغییر در بسته سورس آن است. توسعه‌دهندگان دبیان که روی بسته‌های سورس کار می‌کنند، می‌دانند که کوچکترین تغییر در آن‌ها روی بسته‌های دبیان تاثیر خواهد گذاشت. حاصل کار نهایی آن‌ها در بسته‌های سورس قرار می‌گیرد: به راحتی می‌توانید به آن‌ها مراجعه کنید و ببینید که تمام تغییرات از آنجا شروع می‌شود.
زمانی که نسخه جدیدی از یک بسته (یک بسته سورس و یک یا چند بسته باینری) روی سرورهای دبیان قرار می‌گیرد، بسته سورس مهمترین آن‌ها است. در واقع، توسط شبکه‌ای از ماشین‌ها با معماری‌های متفاوت برای کامپایل و ساخت نسخه‌های مختلف از آن بسته در معماری‌های گوناگون مورد استفاده قرار می‌گیرد. در حقیقت اینکه توسعه‌دهنده خود اقدام به انتشار نسخه‌های متفاوت برای معماری‌های گوناگون می‌کند (معمولا i386 یا amd64) اهمیت خاصی ندارد، چرا که این فعالیت‌ها به صورت خودکار صورت می‌پذیرند.