deb822(5) dpkg suite deb822(5)

deb822 - قالب استاندارد داده‌های متنی دبیان با ساختار RFC822

سیستم مدیریت بسته، داده‌های ارائه‌شده در یک قالب مشترک را مدیریت می‌کند که با نام داده‌های کنترل شناخته می‌شوند و در فایل‌های کنترل ذخیره می‌گردند. فایل‌های کنترل برای بسته‌های سورس (منبع)، بسته‌های باینری و فایل‌های .changes که نصب فایل‌های بارگذاری‌شده را کنترل می‌کنند، به کار می‌روند (پایگاه‌های داده داخلی dpkg نیز دارای قالب مشابهی هستند).

یک فایل کنترل از یک یا چند بند (یا پاراگراف) از فیلدها تشکیل شده است (در گذشته گاهی به این بندها، پاراگراف گفته می‌شد). بندها با خطوط خالی از یکدیگر جدا می‌شوند. تجزیه‌کننده‌ها ممکن است خطوطی را که منحصراً شامل U+0020 SPACE و U+0009 TAB هستند به عنوان جداکننده بند بپذیرند، اما فایل‌های کنترل باید از خطوط خالی استفاده کنند. برخی از فایل‌های کنترل تنها یک بند را مجاز می‌دانند؛ برخی دیگر چندین بند را مجاز می‌شمارند که در این حالت، هر بند معمولاً به یک بسته متفاوت اشاره دارد. (به عنوان مثال، در بسته‌های سورس، بند اول به بسته سورس اشاره دارد و بندهای بعدی به بسته‌های باینری تولیدشده از سورس اشاره می‌کنند.) ترتیب قرارگیری بندها در فایل‌های کنترل حائز اهمیت است.

هر بند از مجموعه‌ای از فیلدهای داده تشکیل می‌شود. هر فیلد شامل نام فیلد است که در پی آن یک دونقطه (U+003A ‘:’) و سپس داده/مقدار مربوط به آن فیلد می‌آید. نام فیلد از نویسه‌های US-ASCII تشکیل می‌شود، به استثنای نویسه‌های کنترلی، فاصله و دونقطه (یعنی نویسه‌ها در بازه U+0021 ‘!’ تا U+0039 ‘9’ و U+003B ‘;’ تا U+007E ‘~’، شامل خود آن‌ها). نام‌های فیلد نباید با نویسه توضیح (U+0023 ‘#’) یا نویسه خط تیره (U+002D ‘-’) آغاز شوند.

فیلد در پایان خط یا در پایان آخرین خط ادامه‌دار (پایین را ببینید) خاتمه می‌یابد. فاصله‌های خالی افقی (U+0020 SPACE و U+0009 TAB) ممکن است بلافاصله قبل یا بعد از مقدار قرار گیرند و در آنجا نادیده گرفته می‌شوند؛ مرسوم است که پس از دونقطه یک فاصله قرار داده شود. برای مثال، یک فیلد می‌تواند به شکل زیر باشد:

Package: dpkg

که در آن نام فیلد Package و مقدار فیلد dpkg است.

مقادیر خالی فیلد فقط در فایل‌های کنترل بسته سورس (debian/control) مجاز هستند. این فیلدها نادیده گرفته می‌شوند.

یک بند نباید شامل بیش از یک نمونه از یک نام فیلد خاص باشد.

سه نوع فیلد وجود دارد:

فیلد، شامل مقدار آن، باید در یک خط واحد باشد. تا کردن فیلد مجاز نیست. اگر تعریف فیلد نوع متفاوتی را مشخص نکرده باشد، این نوع فیلد به عنوان نوع پیش‌فرض در نظر گرفته می‌شود.
مقدار یک فیلد تاشده یک خط منطقی است که می‌تواند در چند خط گسترده شود. خطوط پس از خط اول، خطوط ادامه نامیده می‌شوند و باید با یک U+0020 SPACE یا یک U+0009 TAB آغاز گردند. فاصله خالی، از جمله هرگونه نویسه خط جدید، در مقادیر فیلدهای تاشده اهمیت معناداری ندارد.

این روش تا کردن مشابه با RFC5322 است که به فایل‌های کنترل حاوی تنها یک بند و بدون فیلدهای چندخطی امکان می‌دهد توسط تجزیه‌کننده‌های نوشته‌شده برای RFC5322 خوانده شوند.

مقدار یک فیلد چندخطی ممکن است شامل چندین خط ادامه‌دار باشد. خط اول مقدار، یعنی بخشی که در همان خطِ نام فیلد قرار دارد، اغلب اهمیت خاصی دارد یا ممکن است لازم باشد خالی باشد. سایر خطوط با پیروی از همان قواعد نحوی خطوط ادامه‌دار فیلدهای تاشده اضافه می‌شوند. فاصله‌های خالی، شامل خطوط جدید، در مقادیر فیلدهای چندخطی معنادار هستند.

فاصله خالی نباید در داخل نام‌ها (نام بسته‌ها، معماری‌ها، فایل‌ها یا هر چیز دیگری) یا شماره‌های نسخه، یا بین نویسه‌های روابط چندنویسه‌ای نسخه قرار گیرد.

حضور و هدف یک فیلد و نحو مقدار آن ممکن است بین انواع مختلف فایل‌های کنترل متفاوت باشد.

نام‌های فیلد به بزرگی و کوچکی حروف حساس نیستند، اما معمول است که نام فیلدها با استفاده از حروف بزرگ و کوچک ترکیبی مطابق آنچه در ادامه آمده است نوشته شوند. مقادیر فیلدها به بزرگی و کوچکی حروف حساس هستند مگر اینکه در توضیحات فیلد خلاف آن ذکر شده باشد.

جداکننده‌های بند (خطوط خالی) و خطوطی که منحصراً شامل U+0020 SPACE و U+0009 TAB هستند، در داخل مقادیر فیلدها یا بین فیلدها مجاز نمی‌باشند. خطوط خالی در مقادیر فیلدها معمولاً با نشان دادن آن‌ها توسط یک U+0020 SPACE به دنبال یک نقطه (U+002E ‘.’) اسکیپ می‌شوند.

خطوطی که بدون هیچ فاصله خالی ابتدایی با U+0023 ‘#’ شروع می‌شوند خطوط توضیح هستند که فقط در فایل‌های کنترل بسته سورس (debian/control) و در فایل‌های deb-origin(5) مجاز می‌باشند. این خطوط توضیح حتی اگر بین دو خط ادامه قرار داشته باشند نادیده گرفته می‌شوند. آن‌ها خطوط منطقی را پایان نمی‌دهند.

تمام فایل‌های کنترل باید با کدگذاری UTF-8 باشند.

RFC822, RFC5322.

2026-03-06 1.23.7-dirty