.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "deb-substvars 5" .TH deb-substvars 5 2026-03-06 1.23.7-dirty "dpkg suite" .if n .ad l .nh .SH "نام (NAME)" deb\-substvars \- متغیرهای جایگزینی مبدا دبیان .SH "شرح مختصات (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBdebian/substvars\fR, \fBdebian/\fR\fIbinary\-package\fR\fB.substvars\fR, variables .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" پیش از آنکه \&\fBdpkg\-source\fR، \fBdpkg\-gencontrol\fR و \fBdpkg\-genchanges\fR اطلاعات کنترلی خود را بنویسند (در پرونده کنترل مبدا \&\fB.dsc\fR برای \&\fBdpkg\-source\fR و در خروجی استاندارد برای \&\fBdpkg\-gencontrol\fR و \fBdpkg\-genchanges\fR)، برخی جایگزینی‌های متغیر را روی پرونده خروجی اعمال می‌کنند. .SS "دستور زبان متغیرها (Variable Syntax)" .IX Subsection "Variable Syntax" یک جایگزینی متغیر به شکل \&\fB${\fR\fIvariable\-name\fR\fB}\fR است. نام متغیرها شامل نویسه‌های الفبایی-عددی (a\-zA\-Z0\-9)، خط پیوند (\-) و دو نقطه (:) بوده و با یک نویسه الفبایی-عددی آغاز می‌شوند و به بزرگی و کوچکی حروف حساس هستند، حتی اگر به موجودیت‌های دیگری اشاره کنند که حالت حروف را حفظ می‌کنند. جایگزینی متغیرها به صورت مکرر انجام می‌شود تا زمانی که هیچ متغیری باقی نماند؛ کل متن فیلد پس از جایگزینی مجدداً برای یافتن متغیرهای بیشتر بررسی می‌شود. .SS "دستور زبان پرونده (File Syntax)" .IX Subsection "File Syntax" متغیرهای جایگزینی را می‌توان در یک پرونده مشخص کرد. این پرونده‌ها شامل خطوطی با انتساب متغیرها هستند که با نام متغیر شروع شده، بلافاصله عملگر انتساب می‌آید و سپس مقدار آن قرار می‌گیرد. هر عملگر ویژگی‌های خاصی به متغیر می‌بخشد. فاصله‌های انتهایی هر خط، خطوط خالی و خطوطی که با نویسه \&\fB#\fR شروع می‌شوند (توضیحات) نادیده گرفته می‌شوند. .PP عملگرهای زیر پشتیبانی می‌شوند: .IP \fB=\fR 4 .IX Item "=" یک متغیر جایگزینی عادی را انتساب می‌دهد. .IP \fB?=\fR 4 .IX Item "?=" یک متغیر جایگزینی اختیاری را انتساب می‌دهد که حتی در صورت استفاده نشدن نیز هیچ هشداری ایجاد نمی‌کند. .Sp پشتیبانی شده از dpkg 1.21.8. .IP \fB!=\fR 4 .IX Item "!=" یک متغیر جایگزینی الزامی را انتساب می‌دهد که اگر استفاده نشود با خطا متوقف خواهد شد. .Sp پشتیبانی شده از dpkg 1.22.7. .IP \fB$=\fR 4 .IX Item "$=" یک متغیر جایگزینی ضمنی را انتساب می‌دهد که اگر فیلد مربوطه در پرونده‌های کنترل \fB.dsc\fR و \fB.deb\fR تعریف نشده باشد، به طور خودکار به عنوان یک فیلد نمونه‌سازی می‌شود. .Sp نام متغیر باید به عنوان یک فضای نام که به دنبال آن یک دونقطه (\(oq\fB:\fR\(cq) و سپس نام فیلد می‌آید تشکیل شود، مانند \fBtool:Depends\fR. تمام متغیرهای ضمنی برای هر فضای نامی که با همان فیلد مطابقت دارند، با استفاده از یک جداکننده فیلد شناخته‌شده یا در صورت ناشناخته بودن جداکننده با فاصله به هم متصل می‌شوند. .Sp پشتیبانی شده از dpkg 1.23.0. .PP برای نمونه: \f(CW\*(C`some\-package:Depends?=other\-package (= 1.0), the\-package\*(C'\fR. .SS "جایگزینی (Substitution)" .IX Subsection "Substitution" متغیرها را می‌توان با استفاده از گزینه عمومی \fB\-V\fR تنظیم کرد. همچنین می‌توان آن‌ها را در پرونده \fBdebian/substvars\fR (یا هر پرونده دیگری که با گزینه عمومی \fB\-T\fR مشخص شده باشد) تعیین کرد. .PP پس از انجام تمام جایگزینی‌ها، هر بار تکرار رشته \&\fB${}\fR (که یک متغیر جایگزینی واقعی نیست) با علامت \&\fB$\fR جایگزین می‌شود. این می‌تواند به عنوان یک توالی گریز (escape sequence) مانند \fB${}{\fR\fIVARIABLE\fR\fB}\fR استفاده شود که در خروجی نهایی به صورت \fB${\fR\fIVARIABLE\fR\fB}\fR ظاهر خواهد شد. .PP اگر به متغیری ارجاع داده شود اما تعریف نشده باشد، هشداری صادر شده و مقدار خالی برای آن در نظر گرفته می‌شود. .PP اگرچه جایگزینی متغیر در تمام فیلدهای کنترلی انجام می‌شود، اما برخی از این فیلدها در طول فرآیند ساخت مورد استفاده قرار می‌گیرند، زمانی که جایگزینی هنوز رخ نداده است. به همین دلیل است که نمی‌توانید از متغیرها در فیلدهای \fBPackage\fR، \fBSource\fR و \fBArchitecture\fR استفاده کنید. .PP جایگزینی متغیر روی محتوای فیلدها پس از تجزیه آن‌ها انجام می‌شود، بنابراین اگر می‌خواهید متغیری در چندین خط گسترش یابد، نیازی نیست بعد از خط جدید فاصله بگذارید. این کار هنگام خروجی فیلد به طور ضمنی انجام می‌شود. برای مثال، اگر متغیر \&\fB${Description}\fR روی "foo is bar.${Newline}foo is great." تنظیم شده باشد و فیلد زیر را داشته باشید: .PP .Vb 4 \& Description: foo application \& ${Description} \& . \& More text. .Ve .PP نتیجه به این شکل خواهد بود: .PP .Vb 5 \& Description: foo application \& foo is bar. \& foo is great. \& . \& More text. .Ve .SS "متغیرهای توکار (Built\-in Variable)" .IX Subsection "Built-in Variable" علاوه بر این، متغیرهای استاندارد زیر همیشه در دسترس هستند: .IP \fBArch\fR 4 .IX Item "Arch" معماری میزبان فعلی (یعنی معماری‌ای که بسته برای آن ساخته می‌شود، معادل \fBDEB_HOST_ARCH\fR). .IP \fBvendor:Name\fR 4 .IX Item "vendor:Name" نام توزیع‌کننده فعلی (از dpkg 1.20.0). این مقدار از فیلد \fBVendor\fR برای پرونده مبدا توزیع‌کننده فعلی، به شکلی که \fBdpkg\-vendor\fR\|(1) آن را بازیابی می‌کند، به دست می‌آید. .IP \fBvendor:Id\fR 4 .IX Item "vendor:Id" شناسه توزیع‌کننده فعلی (از dpkg 1.20.0). این حالت حروف کوچک \fBvendor:Name\fR است. .IP \fBsource:Version\fR 4 .IX Item "source:Version" نگارش بسته مبدا (از dpkg 1.13.19). .IP \fBsource:Upstream\-Version\fR 4 .IX Item "source:Upstream-Version" نگارش بالادستی بسته مبدا، شامل epoch نگارش دبیان در صورت وجود (از dpkg 1.13.19). .IP \fBbinary:Version\fR 4 .IX Item "binary:Version" نگارش بسته دودویی (که ممکن است برای مثال در یک binNMU با \fBsource:Version\fR تفاوت داشته باشد؛ از dpkg 1.13.19). .IP \fBSource\-Version\fR 4 .IX Item "Source-Version" نگارش بسته مبدا (از پرونده changelog). این متغیر اکنون \&\fBمنسوخ شده (obsolete)\fR است و در صورت استفاده خطا تولید می‌کند زیرا معنای آن با عملکردش متفاوت است؛ لطفاً بر حسب نیاز از \fBsource:Version\fR یا \fBbinary:Version\fR استفاده کنید. .IP \fBsource:Synopsis\fR 4 .IX Item "source:Synopsis" شرح مختصر بسته مبدا، استخراج‌شده از فیلد \fBDescription\fR در بند مبدا، در صورت وجود (از dpkg 1.19.0). .IP \fBsource:Extended\-Description\fR 4 .IX Item "source:Extended-Description" توضیحات تفصیلی بسته مبدا، استخراج‌شده از فیلد \fBDescription\fR در بند مبدا، در صورت وجود (از dpkg 1.19.0). .IP \fBInstalled\-Size\fR 4 .IX Item "Installed-Size" اندازه تقریبی کل پرونده‌های نصب‌شده بسته. این مقدار در فیلد متناظر پرونده کنترل کپی می‌شود؛ تنظیم آن مقدار آن فیلد را تغییر می‌دهد. اگر این متغیر تنظیم نشود، \&\fBdpkg\-gencontrol\fR مقدار پیش‌فرض را با جمع اندازه هر پرونده عادی و پیوند نمادین (گرد شده به واحدهای ۱ کیلوبایتی) و مبنای ۱ کیلوبایت برای هر نوع شیء دیگر سیستم پرونده محاسبه می‌کند، که پیوندهای سخت فقط یک بار به عنوان پرونده عادی شمارش می‌شوند. .Sp \&\fBتوجه\fR: در نظر داشته باشید که این همیشه می‌تواند تنها یک تخمین باشد، زیرا اندازه واقعی مورد استفاده در سیستم نصب‌شده بستگی زیادی به سیستم پرونده مورد استفاده و پارامترهای آن دارد که ممکن است فضای بیشتر یا کمتری نسبت به مقدار تعیین‌شده در این فیلد مصرف کند. .IP \fBExtra\-Size\fR 4 .IX Item "Extra-Size" فضای دیسک اضافی مورد استفاده هنگام نصب بسته. اگر این متغیر تنظیم شود، مقدار آن به متغیر \&\fBInstalled\-Size\fR (چه به طور صریح تنظیم شده باشد یا مقدار پیش‌فرض باشد) پیش از کپی شدن در فیلد کنترل \fBInstalled\-Size\fR اضافه می‌شود. .IP \fBS:\fR\fIfield\-name\fR 4 .IX Item "S:field-name" مقدار فیلد بند مبدا \&\fIfield\-name\fR (که باید با حروف‌چینی رسمی و بزرگ و کوچک استاندارد وارد شود؛ از dpkg 1.18.11). تنظیم این متغیرها هیچ اثری به جز در مکان‌هایی که به صراحت گسترش یافته‌اند ندارد. این متغیرها تنها هنگام تولید پرونده‌های کنترل دودویی در دسترس هستند. .IP \fBF:\fR\fIfield\-name\fR 4 .IX Item "F:field-name" مقدار فیلد خروجی \&\fIfield\-name\fR (که باید با حروف‌چینی استاندارد وارد شود). تنظیم این متغیرها هیچ اثری به جز در مکان‌هایی که به صراحت گسترش یافته‌اند ندارد. .IP \fBFormat\fR 4 .IX Item "Format" نگارش قالب پرونده \&\fB.changes\fR تولید شده توسط این نگارش از اسکریپت‌های بسته‌بندی مبدا. اگر این متغیر را تنظیم کنید، محتوای فیلد \fBFormat\fR در پرونده \fB.changes\fR نیز تغییر خواهد کرد. .IP "\fBNewline\fR, \fBSpace\fR, \fBTab\fR" 4 .IX Item "Newline, Space, Tab" هر یک از این متغیرها نویسه متناظر با نام خود را نگه می‌دارند. .IP \fBshlibs:\fR\fIdependencyfield\fR 4 .IX Item "shlibs:dependencyfield" تنظیمات متغیر با نام‌هایی با این قالب توسط \&\fBdpkg\-shlibdeps\fR ایجاد می‌شوند. .IP \fBdpkg:Upstream\-Version\fR 4 .IX Item "dpkg:Upstream-Version" نگارش بالادستی dpkg (از dpkg 1.13.19). .IP \fBdpkg:Version\fR 4 .IX Item "dpkg:Version" نگارش کامل dpkg (از dpkg 1.13.19). .SH "پرونده‌ها (FILES)" .IX Header "FILES" .IP \fBdebian/substvars\fR 4 .IX Item "debian/substvars" فهرست متغیرها و مقادیر جایگزینی. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBdpkg\fR\|(1), \&\fBdpkg\-vendor\fR\|(1), \&\fBdpkg\-genchanges\fR\|(1), \&\fBdpkg\-gencontrol\fR\|(1), \&\fBdpkg\-shlibdeps\fR\|(1), \&\fBdpkg\-source\fR\|(1).