'\" t .\" Title: apt_preferences .\" Author: تیم APT .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 16\ \&December\ \&2025 .\" Manual: APT .\" Source: APT 3.3.3 .\" Language: Persian .\" .TH "APT_PREFERENCES" "5" "16\ \&December\ \&2025" "APT 3.3.3" "APT" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" apt_preferences \- فایل کنترل ترجیحات و اولویتهای پکیجهای APT .SH "توضیحات (DESCRIPTION)" .PP فایل ترجیحات APT در مسیر /etc/apt/preferences و فایل‌های تکه‌ای موجود در پوشه /etc/apt/preferences\&.d/ می‌توانند برای کنترل این که کدام نسخه‌ها از بسته‌ها برای نصب انتخاب شوند، استفاده شوند\&. .PP زمانی که فایل \fBsources.list\fR(5) شامل ارجاع به بیش از یک توزیع باشد (برای مثال، stable و testing)، ممکن است چندین نسخه از یک بسته برای نصب در دسترس باشند\&. سامانه APT به هر نسخه‌ای که در دسترس است یک اولویت تخصیص می‌دهد\&. با در نظر گرفتن محدودیت‌های وابستگی، دستور \fBapt\-get\fR نسخه‌ای را که دارای بالاترین اولویت است برای نصب انتخاب می‌کند\&. ترجیحات APT اولویت‌هایی را که APT به طور پیش‌فرض به نسخه‌های بسته تخصیص می‌دهد لغو و بازنویسی می‌کنند، بنابراین به کاربر امکان کنترل این را می‌دهند که کدام نسخه برای نصب انتخاب شود\&. .PP هنگامی که فایل \fBsources.list\fR(5) شامل ارجاع به بیش از یک منبع باشد، ممکن است چندین نمونه از یک نسخه مشابه از بسته در دسترس باشد\&. در این حالت، \fBapt\-get\fR نمونه‌ای را دریافت می‌کند که زودتر در فایل \fBsources.list\fR(5) فهرست شده است\&. ترجیحات APT بر انتخاب نمونه تأثیری ندارند، بلکه فقط بر انتخاب نسخه اثر می‌گذارند\&. .PP ترجیحات قدرتی نیرومند در دستان مدیر سیستم هستند، اما در صورت عدم دقت در استفاده می‌توانند به بزرگ‌ترین کابوس او نیز تبدیل شوند! APT ترجیحات را زیر سؤال نمی‌برد، بنابراین تنظیمات نادرست می‌توانند منجر به غیرقابل‌نصب شدن بسته‌ها یا تصمیمات اشتباه در هنگام ارتقای بسته‌ها گردند\&. در صورتی که بدون درک درست از بندهای بعدی، انتشارهای مختلف توزیع با یکدیگر ترکیب شوند، مشکلات بیشتری نیز رخ خواهد داد\&. بسته‌های موجود در یک انتشار مشخص در انتشارهای قدیمی‌تر یا جدیدتر یا همراه با سایر بسته‌ها از انتشارهای متفاوت آزمایش نشده‌اند (و بنابراین همیشه طبق انتظار کار نمی‌کنند)\&. این یک هشدار است\&. .PP توجه داشته باشید که فایل‌های موجود در دایرکتوری /etc/apt/preferences\&.d باید از قرارداد نام‌گذاری زیر پیروی کنند: فایل‌ها باید یا هیچ پسوندی نداشته باشند یا پسوند "pref" داشته باشند و تنها شامل کاراکترهای الفبایی\-عددی، خط تیره (\-)، زیرخط (_) و نقطه (\&.) باشند\&. در غیر این صورت، APT اعلانی مبنی بر نادیده گرفتن فایل چاپ خواهد کرد، مگر اینکه آن فایل با الگویی در فهرست پیکربندی Dir::Ignore\-Files\-Silently مطابقت داشته باشد \- که در این صورت بدون هیچ پیامی نادیده گرفته می‌شود\&. .PP ابتدا فایل /etc/apt/preferences پردازش می‌شود و سپس فایل‌های موجود در /etc/apt/preferences\&.d به ترتیب الفبایی (واژه‌نگاری) پردازش می‌گردند\&. برای مثال، /etc/apt/preferences\&.d/00\-high\-priority\&.pref، /etc/apt/preferences\&.d/50\-mid\-priority و /etc/apt/preferences\&.d/z\-low\-priority\&.pref به همین ترتیب پردازش خواهند شد\&. .SS "تخصیص اولویت‌های پیش‌فرض APT" .PP اگر هیچ فایل ترجیحاتی وجود نداشته باشد یا اگر هیچ ورودی در فایل که برای یک نسخه خاص اعمال شود نباشد، اولویت تخصیص‌یافته به آن نسخه برابر با اولویت توزیعی است که نسخه به آن تعلق دارد\&. این امکان وجود دارد که یک توزیع، تحت عنوان "انتشار هدف" (the target release)، مشخص شود که به طور پیش‌فرض اولویت بالاتری نسبت به سایر توزیع‌ها دریافت می‌کند\&. انتشار هدف را می‌توان در خط فرمان \fBapt\-get\fR یا در فایل پیکربندی APT در /etc/apt/apt\&.conf تنظیم کرد\&. توجه داشته باشید که این مقدار بر هر اولویت کلی که در فایل /etc/apt/preferences تنظیم کرده‌اید و بعداً توضیح داده می‌شود ارجحیت دارد، اما بر بسته‌هایی که مشخصاً اولویت‌بندی (pin) شده‌اند ارجحیت ندارد\&. برای مثال: .sp .if n \{\ .RS 4 .\} .nf \fBapt\-get install \-t testing \fR\fB\fIsome\-package\fR\fR .fi .if n \{\ .RE .\} .sp .sp .if n \{\ .RS 4 .\} .nf APT::Default\-Release "stable"; .fi .if n \{\ .RE .\} .PP اگر انتشار هدف مشخص شده باشد، APT از الگوریتم زیر برای تنظیم اولویت‌های نسخه‌های یک بسته استفاده می‌کند\&. تخصیص: .PP اولویت ۱ .RS 4 به نسخه‌هایی که از آرشیوهایی می‌آیند که در فایل‌های Release آن‌ها با "NotAutomatic: yes" مشخص شده‌اند اما \fIنه\fR به عنوان "ButAutomaticUpgrades: yes"، مانند آرشیو experimental دبیان، و همچنین نسخه‌هایی که در این سیستم فازبندی (phased) نشده‌اند\&. .RE .PP اولویت ۱۰۰ .RS 4 به نسخه‌ای که از قبل نصب شده است (در صورت وجود) و به نسخه‌هایی که از آرشیوهایی می‌آیند که در فایل‌های Release آن‌ها با "NotAutomatic: yes" و "ButAutomaticUpgrades: yes" مشخص شده‌اند، مانند آرشیو backports دبیان از زمان squeeze\-backports\&. .RE .PP اولویت ۵۰۰ .RS 4 به نسخه‌هایی که متعلق به انتشار هدف نیستند\&. .RE .PP اولویت ۹۹۰ .RS 4 به نسخه‌هایی که متعلق به انتشار هدف هستند\&. .RE بالاترین اولویت در میان این اولویت‌ها که توصیف آن با نسخه تطابق دارد، به آن نسخه تخصیص می‌یابد\&. .PP اگر انتشار هدف مشخص نشده باشد، APT به سادگی اولویت ۱۰۰ را به تمام نسخه‌های بسته‌های نصب‌شده و اولویت ۵۰۰ را به تمام نسخه‌های بسته‌های نصب‌نشده تخصیص می‌دهد، به جز نسخه‌هایی که از آرشیوهایی می‌آیند که در فایل‌های Release آن‌ها با "NotAutomatic: yes" علامت‌گذاری شده‌اند \- این نسخه‌ها اولویت ۱ یا اگر علاوه بر آن با "ButAutomaticUpgrades: yes" مشخص شده باشند اولویت ۱۰۰ دریافت می‌کنند\&. .PP سپس APT قواعد زیر را، که به ترتیب ارجحیت فهرست شده‌اند، اعمال می‌کند تا مشخص کند کدام نسخه از یک بسته را نصب کند\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} هرگز نسخه را به نسخه عقب‌تر برنگردانید (تنزل نسخه یا downgrade نکنید)، مگر اینکه اولویت یک نسخه موجود حداقل ۱۰۰۰ باشد\&. ("تنزل نسخه / Downgrading" به معنای نصب نسخه‌ای قدیمی‌تر از یک بسته به جای نسخه‌ای جدیدتر است\&. توجه داشته باشید که تمام اولویت‌های پیش‌فرض APT کمتر از ۱۰۰۰ هستند؛ اولویت‌های بالاتر را تنها می‌توان در فایل ترجیحات تنظیم کرد\&. همچنین توجه داشته باشید که تنزل دادن نسخه یک بسته می‌تواند با خطر همراه باشد\&.) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نسخه‌ای را که دارای بالاترین اولویت است نصب کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر دو یا چند نسخه دارای اولویت یکسان باشند، تازه‌ترین نسخه (یعنی نسخه‌ای با شماره نسخه بالاتر) را نصب کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر دو یا چند نسخه دارای اولویت و شماره نسخه یکسان باشند، اما بسته‌ها در برخی از متاداده‌های خود تفاوت داشته باشند یا گزینه \-\-reinstall داده شده باشد، نسخه نصب‌نشده را نصب کنید\&. .RE .PP در یک موقعیت معمولی، نسخه نصب‌شده یک بسته (اولویت ۱۰۰) به اندازه یکی از نسخه‌های موجود در منابع فهرست‌شده در فایل \fBsources.list\fR(5) (اولویت ۵۰۰ یا ۹۹۰) تازه نیست\&. در این حالت زمانی که \fBapt\-get install \fR\fB\fIsome\-package\fR\fR یا \fBapt\-get upgrade\fR اجرا شود، بسته ارتقا خواهد یافت\&. .PP در موارد نادرتر، نسخه نصب‌شده یک بسته \fIتازه‌تر\fR از هر یک از نسخه‌های موجود دیگر است\&. هنگامی که \fBapt\-get install \fR\fB\fIsome\-package\fR\fR یا \fBapt\-get upgrade\fR اجرا شود، نسخه بسته تنزل نخواهد یافت\&. .PP گاهی اوقات نسخه نصب‌شده یک بسته تازه‌تر از نسخه متعلق به انتشار هدف است، اما به تازگی نسخه‌ای متعلق به یک توزیع دیگر نیست\&. چنین بسته‌ای قطعاً زمانی که \fBapt\-get install \fR\fB\fIsome\-package\fR\fR یا \fBapt\-get upgrade\fR اجرا شود ارتقا خواهد یافت، زیرا حداقل \fIیکی\fR از نسخه‌های موجود اولویتی بالاتر از نسخه نصب‌شده دارد\&. .SS "به‌روزرسانی‌های مرحله‌ای (Phased Updates)" .PP سامانه APT فیلدی به نام Phased\-Update\-Percentage را می‌شناسد که می‌تواند برای کنترل عرضه تدریجی یک نسخه جدید استفاده شود\&. این فیلد یک عدد صحیح بین ۰ تا ۱۰۰ است\&. .PP واجد شرایط بودن یک سیستم برای دریافت یک به‌روزرسانی مرحله‌ای با مقداردهی اولیه مولد اعداد تصادفی توسط نام بسته مبدأ، شماره نسخه، و /etc/machine\-id، و سپس محاسبه یک عدد صحیح در بازه [0, 100] تعیین می‌شود\&. اگر این عدد صحیح بزرگ‌تر از Phased\-Update\-Percentage باشد، نسخه به اولویت ۱ پین (سنجاق) می‌شود و در نتیجه نگه داشته خواهد شد\&. در غیر این صورت، قواعد خط‌مشی عادی اعمال می‌شوند\&. .PP در صورتی که چندین سیستم دارید که می‌خواهید مجموعه یکسانی از به‌روزرسانی‌ها را دریافت کنند، می‌توانید APT::Machine\-ID را روی یک UUID تنظیم کنید تا همگی به طور یکسان فازبندی شوند، یا APT::Get::Never\-Include\-Phased\-Updates یا APT::Get::Always\-Include\-Phased\-Updates را برابر با true قرار دهید تا APT هرگز یا همیشه به‌روزرسانی‌های مرحله‌ای را لحاظ کند\&. .SS "اثر ترجیحات APT" .PP فایل ترجیحات APT به مدیر سیستم اجازه می‌دهد تخصیص اولویت‌ها را کنترل کند\&. این فایل از یک یا چند رکورد چندخطی تشکیل شده است که با خطوط خالی از هم جدا می‌شوند\&. رکوردها می‌توانند یکی از دو شکل را داشته باشند: یک شکل خاص و یک شکل عمومی\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} شکل خاص، یک اولویت (یک "Pin\-Priority") را به یک یا چند بسته مشخص با یک نسخه یا محدوده نسخه مشخص تخصیص می‌دهد\&. برای مثال، رکورد زیر اولویت بالایی را به تمام نسخه‌های بسته perl که شماره نسخه آن‌ها با "5\&.32" شروع می‌شود، تخصیص می‌دهد\&. چند بسته را می‌توان با فاصله از هم جدا کرد\&. .sp .if n \{\ .RS 4 .\} .nf Package: perl Pin: version 5\&.32* Pin\-Priority: 1001 .fi .if n \{\ .RE .\} .sp از نسخه 2\&.9\&.9 به بعد، می‌توانید بر اساس نسخه مبدأ (source version) نیز پین کنید: .sp .if n \{\ .RS 4 .\} .nf Package: perl Pin: source\-version 5\&.32* Pin\-Priority: 1001 .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} شکل عمومی، یک اولویت را به تمام نسخه‌های بسته در یک توزیع معین (یعنی به تمام نسخه‌های بسته‌هایی که در یک فایل Release خاص فهرست شده‌اند) یا به تمام نسخه‌های بسته که از یک پایگاه اینترنتی مشخص می‌آیند، همان‌طور که توسط نام دامنه کاملاً واجد شرایط (FQDN) آن پایگاه مشخص شده است، تخصیص می‌دهد\&. .sp این ورودی به شکل عمومی در فایل ترجیحات APT تنها برای گروه‌هایی از بسته‌ها اعمال می‌شود\&. برای مثال، رکورد زیر اولویت بالایی را به تمام نسخه‌های بسته‌های موجود از پایگاه محلی تخصیص می‌دهد\&. .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: origin "" Pin\-Priority: 999 .fi .if n \{\ .RE .\} .sp یک نکته احتیاطی: کلمه کلیدی استفاده‌شده در اینجا "origin" است که می‌تواند برای تطابق با یک نام میزبان به کار رود\&. رکورد زیر اولویت بالایی را به تمام نسخه‌های موجود از سروری که با نام میزبان "ftp\&.de\&.debian\&.org" مشخص شده است تخصیص می‌دهد: .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: origin "ftp\&.de\&.debian\&.org" Pin\-Priority: 999 .fi .if n \{\ .RE .\} .sp این مورد \fIنباید\fR با مبدأ (Origin) یک توزیع همان‌طور که در فایل Release مشخص شده است اشتباه گرفته شود\&. آنچه پس از برچسب "Origin:" در یک فایل Release می‌آید یک نشانی اینترنتی نیست، بلکه نام یک پدیدآورنده یا فروشنده است، مانند "Debian" یا "Ximian"\&. .sp رکورد زیر اولویت پایینی را به تمام نسخه‌های بسته‌های متعلق به هر توزیعی که نام Archive آن "unstable" است، تخصیص می‌دهد\&. .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: release a=unstable Pin\-Priority: 50 .fi .if n \{\ .RE .\} .sp رکورد زیر اولویت بالایی را به تمام نسخه‌های بسته‌های متعلق به هر توزیعی که نام رمز (Codename) آن "forky" است، تخصیص می‌دهد\&. .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: release n=forky Pin\-Priority: 900 .fi .if n \{\ .RE .\} .sp رکورد زیر اولویت بالایی را به تمام نسخه‌های بسته‌های متعلق به هر انتشاری که نام Archive آن "stable" و شماره نسخه انتشار (Version) آن "13" است، تخصیص می‌دهد\&. .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: release a=stable, v=13 Pin\-Priority: 500 .fi .if n \{\ .RE .\} .RE .sp تأثیر عملگر ویرگول مشابه عملگر منطقی "and" است: همه شرایط باید برقرار باشند تا پین تطبیق یابد\&. یک استثنا وجود دارد: برای هر نوع شرط (مانند دو شرط "a")، تنها آخرین شرط از آن نوع بررسی می‌شود\&. .SS "تطبیق بسته‌ها در فیلد Package" .PP فیلد Package بسته‌ای را مشخص می‌کند که اولویت پین‌گذاری روی آن اعمال می‌شود\&. این فیلد می‌تواند شامل نام یک بسته دودویی (باینری)، نام یک بسته مبدأ (با پیشوند "src:")، یک عبارت \fBglob\fR(7) یا یک عبارت منظم (احاطه‌شده توسط اسلش‌ها) باشد\&. چند نام بسته، عبارت‌های \fBglob\fR(7) و عبارت‌های منظم را می‌توان با فاصله از هم جدا کرد که در این صورت رکورد با هر یک از بسته‌های تطبیق‌یافته مطابقت خواهد داشت\&. .PP به طور پیش‌فرض، فقط بسته‌های مربوط به معماری بومی سیستم مطابقت داده می‌شوند\&. برای تطبیق بسته‌های دودویی از هر معماری، پسوند :any را به نام بسته اضافه کنید\&. همچنین می‌توانید با الصاق نام معماری به نام بسته با یک کاراکتر دو نقطه، تطبیق را به یک معماری خاص محدود کنید\&. .PP برای مثال، در نمونه زیر از یک عبارت glob و یک عبارت منظم برای تخصیص اولویت ۵۰۰ به تمام بسته‌های experimental استفاده می‌شود که نام آن‌ها با gnome شروع می‌شود (به عنوان یک عبارت شبیه به \fBglob\fR(7)) یا شامل کلمه kde است (به عنوان یک عبارت منظم تعمیم‌یافته POSIX که با اسلش‌ها احاطه شده است)\&. .sp .if n \{\ .RS 4 .\} .nf Package: gnome* /kde/ Pin: release a=experimental Pin\-Priority: 500 .fi .if n \{\ .RE .\} .PP قاعده برای این عبارت‌ها این است که می‌توانند در هر جایی که یک رشته می‌تواند قرار گیرد، بیایند\&. بنابراین، پین زیر اولویت ۹۹۰ را به تمام بسته‌های متعلق به انتشاری که با plucky شروع می‌شود تخصیص می‌دهد: .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: release n=plucky* Pin\-Priority: 990 .fi .if n \{\ .RE .\} .PP اگر یک عبارت منظم در فیلد Package بیاید، رفتار آن مشابه زمانی است که این عبارت منظم با فهرستی از نام تمام بسته‌هایی که با آن مطابقت دارند جایگزین شده باشد\&. هنوز تصمیمی در مورد اینکه آیا این رفتار در آینده تغییر خواهد کرد یا خیر گرفته نشده است؛ بنابراین همیشه باید ابتدا پین‌های حاوی نویسه عمومی (wild-card) را فهرست کنید تا پین‌های خاص بعدی آن را لغو و بازنویسی کنند\&. الگوی "*" در یک فیلد Package به خودی خود یک عبارت \fBglob\fR(7) در نظر گرفته نمی‌شود\&. .PP برای پین کردن تمام بسته‌های دودویی تولیدشده توسط بسته مبدأ apt از این نسخه APT با اولویت ۹۹۰، می‌توانید این‌گونه عمل کنید: .sp .if n \{\ .RS 4 .\} .nf Package: src:apt Pin: version 3\&.3\&.3 Pin\-Priority: 990 .fi .if n \{\ .RE .\} .PP پین‌گذاری بسته مبدأ می‌تواند با عبارت‌های منظم و الگوهای glob ترکیب شود، و همچنین می‌تواند معماری دودویی را بپذیرد\&. .PP برای مثال، بیایید تمام بسته‌های دودویی برای تمامی معماری‌ها که توسط هر بسته مبدأ حاوی apt در نام آن تولید شده‌اند را با اولویت ۹۹۰ پین کنیم: .sp .if n \{\ .RS 4 .\} .nf Package: src:*apt*:any Pin: version * Pin\-Priority: 990 .fi .if n \{\ .RE .\} .PP پسوند :any اطمینان حاصل می‌کند که بسته‌های دودویی از هر معماری انتخاب شوند\&. بدون این پسوند، apt به طور ضمنی پسوند :native را فرض می‌کند که تنها بسته‌ها را از معماری بومی انتخاب خواهد کرد\&. .SS "نحوه تفسیر اولویت‌ها توسط APT" .PP اولویت‌های (P) تخصیص‌یافته در فایل ترجیحات APT باید اعداد صحیح مثبت یا منفی باشند\&. آن‌ها به صورت زیر تفسیر می‌شوند (به طور کلی): .PP P >= 1000 .RS 4 باعث نصب یک نسخه می‌شود حتی اگر این عمل منجر به تنزل نسخه (downgrade) بسته گردد\&. .RE .PP 990 <= P < 1000 .RS 4 باعث نصب یک نسخه می‌شود حتی اگر از انتشار هدف نیامده باشد، مگر اینکه نسخه نصب‌شده تازه‌تر باشد\&. .RE .PP 500 <= P < 990 .RS 4 باعث نصب یک نسخه می‌شود مگر اینکه نسخه‌ای متعلق به انتشار هدف در دسترس باشد یا نسخه نصب‌شده تازه‌تر باشد\&. .RE .PP 100 <= P < 500 .RS 4 باعث نصب یک نسخه می‌شود مگر اینکه نسخه‌ای متعلق به یک توزیع دیگر در دسترس باشد یا نسخه نصب‌شده تازه‌تر باشد\&. .RE .PP 0 < P < 100 .RS 4 تنها در صورتی باعث نصب نسخه می‌شود که هیچ نسخه‌ای از بسته نصب نشده باشد\&. .RE .PP P < 0 .RS 4 از نصب نسخه جلوگیری می‌کند\&. .RE .PP P = 0 .RS 4 رفتار تعریف‌نشده دارد، از آن استفاده نکنید\&. .RE .PP اولین رکورد با شکل خاص که با یک نسخه از بسته موجود مطابقت داشته باشد، اولویت آن نسخه بسته را تعیین می‌کند\&. در غیر این صورت، اولویت بسته به عنوان بیشینه تمام اولویت‌های تعریف‌شده توسط رکوردهای شکل عمومی که با آن نسخه مطابقت دارند تعریف می‌شود\&. رکوردهایی که با استفاده از الگوهایی در فیلد Pin غیر از "*" تعریف شده‌اند مانند رکوردهای شکل خاص مدیریت می‌شوند\&. .PP برای مثال، فرض کنید فایل ترجیحات APT شامل سه رکوردی است که پیش‌تر ارائه شد: .sp .if n \{\ .RS 4 .\} .nf Package: perl Pin: version 5\&.32* Pin\-Priority: 1001 Package: * Pin: origin "" Pin\-Priority: 999 Package: * Pin: release unstable Pin\-Priority: 50 .fi .if n \{\ .RE .\} .PP در این صورت: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تازه‌ترین نسخه موجود از بسته perl نصب خواهد شد، مادامی که شماره نسخه آن با "5\&.32" آغاز شود\&. اگر \fIهر\fR نسخه *5\&.32 از perl موجود باشد و نسخه نصب‌شده *5\&.36 باشد، آنگاه perl تنزل نسخه (downgrade) خواهد یافت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک نسخه از هر بسته‌ای غیر از perl که از سیستم محلی در دسترس باشد نسبت به نسخه‌های دیگر، حتی نسخه‌های متعلق به انتشار هدف، اولویت دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نسخه‌ای از یک بسته که مبدأ آن سیستم محلی نیست بلکه پایگاه دیگری است که در \fBsources.list\fR(5) فهرست شده و متعلق به یک توزیع unstable است، تنها در صورتی نصب می‌شود که برای نصب انتخاب شده باشد و هنوز هیچ نسخه‌ای از آن بسته نصب نشده باشد\&. .RE .sp .SS "تعیین ویژگی‌های نسخه بسته و توزیع" .PP مکان‌های فهرست‌شده در فایل \fBsources.list\fR(5) باید فایل‌های Packages و Release را ارائه دهند تا بسته‌های موجود در آن مکان را توصیف کنند\&. .PP فایل Packages معمولاً در دایرکتوری \&.\&.\&./dists/\fIdist\-name\fR/\fIcomponent\fR/\fIarch\fR یافت می‌شود: برای مثال، \&.\&.\&./dists/stable/main/binary\-i386/Packages\&. این فایل از مجموعه‌ای از رکوردهای چندخطی تشکیل شده است، یکی برای هر بسته موجود در آن دایرکتوری\&. تنها دو خط در هر رکورد برای تنظیم اولویت‌های APT مرتبط هستند: .PP خط Package: .RS 4 نام بسته را ارائه می‌دهد\&. .RE .PP خط Version: .RS 4 شماره نسخه بسته نام‌برده را ارائه می‌دهد\&. .RE .PP فایل Release معمولاً در دایرکتوری \&.\&.\&./dists/\fIdist\-name\fR یافت می‌شود: برای مثال، \&.\&.\&./dists/stable/Release یا \&.\&.\&./dists/trixie/Release\&. این فایل از یک تک رکورد چندخطی تشکیل شده است که برای \fIتمامی\fR بسته‌های موجود در درخت دایرکتوری زیر شاخه والد آن اعمال می‌شود\&. بر خلاف فایل Packages، تقریباً تمام خطوط موجود در یک فایل Release برای تنظیم اولویت‌های APT مرتبط هستند: .PP خط Archive: یا Suite: .RS 4 نام آرشیوی را مشخص می‌کند که تمام بسته‌های موجود در درخت دایرکتوری متعلق به آن هستند\&. برای مثال، خط "Archive: stable" یا "Suite: stable" مشخص می‌کند که تمام بسته‌های موجود در درخت دایرکتوریِ زیر شاخه والد فایل Release در یک آرشیو stable قرار دارند\&. مشخص کردن این مقدار در فایل ترجیحات APT نیازمند خط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release a=stable .fi .if n \{\ .RE .\} .RE .PP خط Codename: .RS 4 نام رمزی را مشخص می‌کند که تمام بسته‌های موجود در درخت دایرکتوری متعلق به آن هستند\&. برای مثال، خط "Codename: forky" مشخص می‌کند که تمام بسته‌های موجود در درخت دایرکتوریِ زیر شاخه والد فایل Release متعلق به نسخه‌ای با نام رمز forky هستند\&. مشخص کردن این مقدار در فایل ترجیحات APT نیازمند خط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release n=forky .fi .if n \{\ .RE .\} .RE .PP خط Version: .RS 4 شماره نسخه انتشار را مشخص می‌کند\&. برای مثال، بسته‌های موجود در درخت ممکن است متعلق به انتشار دبیان نسخه ۱۳ باشند\&. توجه داشته باشید که معمولاً برای توزیع‌های testing و unstable هیچ شماره نسخه‌ای وجود ندارد زیرا هنوز به صورت رسمی منتشر نشده‌اند\&. مشخص کردن این مقدار در فایل ترجیحات APT نیازمند یکی از خطوط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release v=13 Pin: release a=stable, v=13 Pin: release 13 .fi .if n \{\ .RE .\} .RE .PP خط Component: .RS 4 نام بخش مجوز (licensing component) مرتبط با بسته‌های موجود در درخت دایرکتوری فایل Release را مشخص می‌کند\&. برای مثال، خط "Component: main" مشخص می‌کند که تمام بسته‌های درخت دایرکتوری از بخش main هستند، که متضمن آن است که آن‌ها تحت شرایط فهرست‌شده در راهنمای نرم‌افزار آزاد دبیان مجوز دارند\&. مشخص کردن این مؤلفه در فایل ترجیحات APT نیازمند خط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release c=main .fi .if n \{\ .RE .\} .RE .PP خط Origin: .RS 4 نام ایجادکننده/مبدأ بسته‌ها در درخت دایرکتوری فایل Release را مشخص می‌کند\&. رایج‌ترین مورد، Debian است\&. مشخص کردن این مبدأ در فایل ترجیحات APT نیازمند خط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release o=Debian .fi .if n \{\ .RE .\} .RE .PP خط Label: .RS 4 نام برچسب بسته‌ها در درخت دایرکتوری فایل Release را مشخص می‌کند\&. رایج‌ترین مورد، Debian است\&. مشخص کردن این برچسب در فایل ترجیحات APT نیازمند خط زیر است: .sp .if n \{\ .RS 4 .\} .nf Pin: release l=Debian .fi .if n \{\ .RE .\} .RE .PP تمام فایل‌های Packages و Release دریافت‌شده از مکان‌های فهرست‌شده در فایل \fBsources.list\fR(5) در دایرکتوری /var/lib/apt/lists یا در فایلی که توسط متغیر Dir::State::Lists در فایل apt\&.conf نام‌گذاری شده است، ذخیره می‌شوند\&. برای مثال، فایل debian\&.lcs\&.mit\&.edu_debian_dists_unstable_contrib_binary\-i386_Release شامل فایل Release دریافت‌شده از پایگاه debian\&.lcs\&.mit\&.edu برای فایل‌های معماری binary\-i386 از بخش contrib توزیع unstable است\&. .SS "خطوط اختیاری در رکوردهای ترجیحات APT" .PP هر رکورد در فایل ترجیحات APT می‌تواند به صورت اختیاری با یک یا چند خط که با کلمه Explanation: آغاز می‌شوند شروع شود\&. این بخش فضایی را برای توضیحات و یادداشت‌ها فراهم می‌کند\&. .SH "مثالها (EXAMPLES)" .SS "ردگیری توزیع Stable" .PP فایل ترجیحات APT زیر باعث می‌شود APT اولویتی بالاتر از پیش‌فرض (۵۰۰) به تمام نسخه‌های بسته‌های متعلق به توزیع stable و اولویتی بازدارنده و بسیار پایین به نسخه‌های بسته‌های متعلق به سایر توزیع‌های Debian تخصیص دهد\&. .sp .if n \{\ .RS 4 .\} .nf Explanation: Uninstall or do not install any Debian\-originated Explanation: package versions other than those in the stable distro Package: * Pin: release a=stable Pin\-Priority: 900 Package: * Pin: release o=Debian Pin\-Priority: \-10 .fi .if n \{\ .RE .\} .PP با یک فایل مناسب از \fBsources.list\fR(5) و فایل ترجیحات فوق، هر یک از دستورات زیر باعث می‌شود APT به آخرین نسخه(های) stable ارتقا یابد\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\-name\fR apt\-get upgrade apt\-get dist\-upgrade .fi .if n \{\ .RE .\} .PP دستور زیر باعث می‌شود APT بسته مشخص‌شده را به آخرین نسخه از توزیع testing ارتقا دهد؛ این بسته دوباره ارتقا نخواهد یافت مگر اینکه این دستور مجدداً صادر شود\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\fR/testing .fi .if n \{\ .RE .\} .sp .SS "ردگیری توزیع‌های Testing یا Unstable" .PP فایل ترجیحات APT زیر باعث می‌شود APT اولویتی بالا به نسخه‌های بسته از توزیع testing، اولویتی پایین‌تر به نسخه‌های بسته از توزیع unstable، و اولویتی بازدارنده و بسیار پایین به نسخه‌های بسته از سایر توزیع‌های Debian تخصیص دهد\&. .sp .if n \{\ .RS 4 .\} .nf Package: * Pin: release a=testing Pin\-Priority: 900 Package: * Pin: release a=unstable Pin\-Priority: 800 Package: * Pin: release o=Debian Pin\-Priority: \-10 .fi .if n \{\ .RE .\} .PP با یک فایل مناسب از \fBsources.list\fR(5) و فایل ترجیحات فوق، هر یک از دستورات زیر باعث می‌شود APT به آخرین نسخه(های) testing ارتقا یابد\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\-name\fR apt\-get upgrade apt\-get dist\-upgrade .fi .if n \{\ .RE .\} .PP دستور زیر باعث می‌شود APT بسته مشخص‌شده را به آخرین نسخه از توزیع unstable ارتقا دهد\&. پس از آن، دستور \fBapt\-get upgrade\fR بسته را به تازه‌ترین نسخه testing ارتقا خواهد داد اگر آن نسخه تازه‌تر از نسخه نصب‌شده باشد، در غیر این صورت به تازه‌ترین نسخه unstable اگر آن نسخه تازه‌تر از نسخه نصب‌شده باشد\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\fR/unstable .fi .if n \{\ .RE .\} .sp .SS "ردگیری تکامل یک انتشار بر اساس نام رمز (Codename)" .PP فایل ترجیحات APT زیر باعث می‌شود APT اولویتی بالاتر از پیش‌فرض (۵۰۰) به تمام نسخه‌های بسته‌های متعلق به یک نام رمز مشخص از یک توزیع، و اولویتی بازدارنده و بسیار پایین به نسخه‌های بسته‌های متعلق به سایر توزیع‌ها، نام‌های رمز و آرشیوهای Debian تخصیص دهد\&. توجه داشته باشید که با این ترجیح APT، سیستم مهاجرت یک انتشار از آرشیو testing به stable و سپس به oldstable را دنبال می‌کند\&. اگر می‌خواهید برای مثال پیشرفت در testing را صرف‌نظر از تغییرات نام رمز دنبال کنید، باید از پیکربندی‌های نمونه در بالا استفاده کنید\&. .sp .if n \{\ .RS 4 .\} .nf Explanation: Uninstall or do not install any Debian\-originated package versions Explanation: other than those in the distribution codenamed with forky or sid Package: * Pin: release n=forky Pin\-Priority: 900 Explanation: Debian unstable is always codenamed with sid Package: * Pin: release n=sid Pin\-Priority: 800 Package: * Pin: release o=Debian Pin\-Priority: \-10 .fi .if n \{\ .RE .\} .PP با یک فایل مناسب از \fBsources.list\fR(5) و فایل ترجیحات فوق، هر یک از دستورات زیر باعث می‌شود APT به آخرین نسخه(های) موجود در انتشار با نام رمز forky ارتقا یابد\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\-name\fR apt\-get upgrade apt\-get dist\-upgrade .fi .if n \{\ .RE .\} .PP دستور زیر باعث می‌شود APT بسته مشخص‌شده را به آخرین نسخه از توزیع sid ارتقا دهد\&. پس از آن، دستور \fBapt\-get upgrade\fR بسته را به تازه‌ترین نسخه forky ارتقا خواهد داد اگر آن نسخه تازه‌تر از نسخه نصب‌شده باشد، در غیر این صورت به تازه‌ترین نسخه sid اگر آن نسخه تازه‌تر از نسخه نصب‌شده باشد\&. .sp .if n \{\ .RS 4 .\} .nf apt\-get install \fIpackage\fR/sid .fi .if n \{\ .RE .\} .sp .SH "فایلها (FILES)" .PP /etc/apt/preferences .RS 4 فایل ترجیحات نسخه\&. در اینجا می‌توانید "پین‌گذاری" (pinning) را مشخص کنید، یعنی ترجیح برای دریافت بسته‌های خاصی از یک منبع جداگانه یا از نسخه‌ای متفاوت از یک توزیع\&. مورد پیکربندی: Dir::Etc::Preferences\&. .RE .PP /etc/apt/preferences\&.d/ .RS 4 تکه‌فایل‌های ترجیحات نسخه\&. مورد پیکربندی: Dir::Etc::PreferencesParts\&. .RE .SH "همچنین ببینید (SEE ALSO)" .PP \fBapt-get\fR(8) \fBapt-cache\fR(8) \fBapt.conf\fR(5) \fBsources.list\fR(5) .SH "اشکالات (BUGS)" .PP \m[blue]\fBصفحه اشکالات APT\fR\m[]\&\s-2\u[1]\d\s+2\&. اگر می‌خواهید اشکالی را در APT گزارش کنید، لطفاً فایل /usr/share/doc/debian/bug\-reporting\&.txt یا دستور \fBreportbug\fR(1) را بررسی کنید\&. .SH "نویسنده (AUTHOR)" .PP \fBتیم APT\fR .RS 4 .RE .SH "نکات (NOTES)" .IP " 1." 4 صفحه اشکالات APT .RS 4 \%https://bugs.debian.org/src:apt .RE