SOURCES.LIST(5) APT SOURCES.LIST(5)

sources.list - فهرست منابع بستهها برای سامانه مدیریت بسته APT

فهرست منابع /etc/apt/sources.list و فایل‌های موجود در /etc/apt/sources.list.d/ به گونه‌ای طراحی شده‌اند که از هر تعداد منبع فعال و انواع مختلف رسانه‌های منبع پشتیبانی کنند. این فایل‌ها در هر سطر یک منبع را مشخص می‌کنند (سبک یک‌خطی) یا شامل بندهای چندسطری هستند که در هر بند یک یا چند منبع را تعریف می‌کنند (سبک deb822)، به طوری که ارجح‌ترین منبع در ابتدا فهرست می‌شود (در صورتی که یک نسخه یکسان از بیش از یک منبع در دسترس باشد). اطلاعات در دسترس از منابع پیکربندی‌شده توسط apt-get update (یا دستوری معادل از یک رابط کاربری دیگر APT) دریافت می‌شود.

اگر از چندین فهرست منابع استفاده شود، ارجح‌ترین منابع آن‌هایی هستند که در /etc/apt/sources.list فهرست شده‌اند، و سپس به ترتیب واژه‌نگاری (حروف الفبا) فایل‌های موجود در /etc/apt/sources.list.d/ بررسی می‌شوند: برای مثال، 00-high-preference.list دارای اولویت بالاتری نسبت به 50-middle-preference.sources است که آن نیز نسبت به z-low-preference.list اولویت بالاتری دارد.

دایرکتوری /etc/apt/sources.list.d روشی را برای افزودن ورودی‌های sources.list در فایل‌های جداگانه فراهم می‌کند. همان‌طور که در دو بخش بعدی توضیح داده شده، دو قالب فایلی متفاوت مجاز است. بسته به قالب موجود، نام فایل‌ها باید دارای پسوند .list یا .sources باشند. نام فایل‌ها فقط می‌تواند شامل حروف (a-z و A-Z)، ارقام (0-9)، زیرخط (_)، خط تیره (-) و نقطه (.) باشد. در غیر این صورت APT پیامی مبنی بر نادیده گرفتن فایل چاپ می‌کند، مگر اینکه آن فایل با الگویی در فهرست پیکربندی Dir::Ignore-Files-Silently مطابقت داشته باشد - که در این صورت بدون نمایش پیام و در سکوت نادیده گرفته می‌شود.

نام فایل پیشنهادی برای سیستم‌های جدید /etc/apt/sources.list.d/vendor.sources است، که در آن vendor نتیجه دستور dpkg-vendor --query Vendor | tr A-Z a-z در قالب deb822 است. برای مثال، اوبونتو از /etc/apt/sources.list.d/ubuntu.sources استفاده می‌کند.

فایل‌های این قالب دارای پسوند .list هستند. هر خط مشخص‌کننده یک منبع با یک نوع (مانند deb-src) شروع می‌شود که به دنبال آن گزینه‌ها و آرگومان‌های مربوط به این نوع می‌آیند. ورودی‌های جداگانه را نمی‌توان در خط بعدی ادامه داد. خطوط خالی نادیده گرفته می‌شوند، و نویسه # در هر کجای یک خط، ادامه آن خط را به عنوان توضیح علامت‌گذاری می‌کند. در نتیجه یک ورودی را می‌توان با تبدیل کل خط به توضیح، غیرفعال کرد. اگر گزینه‌هایی ارائه شوند، آن‌ها با فاصله از یکدیگر جدا می‌شوند و همگی با هم درون براکت ([]) پس از نوع منبع و با یک فاصله از آن در خط قرار می‌گیرند. اگر گزینه‌ای مقادیر متعددی را بپذیرد، این مقادیر با کاما (,) از یکدیگر جدا می‌شوند. نام گزینه با علامت مساوی (=) از مقدار(های) خود جدا می‌شود. گزینه‌های چندمقداری همچنین دارای جداکننده‌های -= و += هستند که به جای جایگزین کردن مقدار پیش‌فرض با مقدار(های) داده شده، مقدار(های) پیش‌فرض را برای حذف یا اضافه کردن مقادیر داده شده تغییر می‌دهند.

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

این قالب منسوخ شده است و در نهایت ممکن است حذف شود، اما نه پیش از سال 2029.

فایل‌های این قالب دارای پسوند .sources هستند. این قالب از نظر نحو شبیه به سایر فایل‌های استفاده شده توسط دبیان و مشتقات آن است، مانند فایل‌های متادیتا که apt از منابع پیکربندی‌شده بارگیری می‌کند یا فایل debian/control در یک بسته منبع دبیان. ورودی‌های جداگانه با یک خط خالی از هم جدا می‌شوند؛ خطوط خالی اضافی نادیده گرفته می‌شوند، و نویسه # در ابتدای خط، کل خط را به عنوان یک توضیح علامت‌گذاری می‌کند. بنابراین یک ورودی را می‌توان با تبدیل تک‌تک خطوط متعلق به آن بند به توضیح غیرفعال کرد، اما معمولاً ساده‌تر است که فیلد "Enabled: no" به بند اضافه شود تا ورودی غیرفعال گردد. حذف این فیلد یا تنظیم آن روی yes مجدداً آن را فعال می‌کند. گزینه‌ها دارای نحوی مشابه هر فیلد دیگری هستند: یک نام فیلد که با دو نقطه (:) و اختیاری فاصله‌ها از مقدار(های) خود جدا می‌شود. به ویژه توجه داشته باشید که مقادیر چندگانه با فاصله‌های سفید (مانند فاصله، تب و خطوط جدید) از یکدیگر جدا می‌شوند، نه با کاما مانند قالب یک‌خطی. فیلدهای چندمقداری مانند Architectures همچنین دارای Architectures-Add و Architectures-Remove هستند تا مقدار پیش‌فرض را به جای جایگزینی، اصلاح کنند.

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

نوع deb به یک آرشیو متداول دو سطحی دبیان ارجاع می‌دهد، distribution/component. بخش distribution عموماً یک نام توزیع (suite) مانند stable یا testing یا یک نام رمز (codename) مانند trixie یا forky است، در حالی که component یکی از مقادیر main، contrib، non-free یا non-free-firmware است. نوع deb-src به کد منبع یک توزیع دبیان در همان قالب نوع deb ارجاع می‌دهد. یک سطر deb-src برای دریافت نمایه‌های کد منبع الزامی است.

قالب دو ورودی سبک یک‌خطی با استفاده از انواع deb و deb-src به صورت زیر است:

deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]
deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]

در مقابل، ورودی معادل در سبک deb822 به شکل زیر است:

Types: deb deb-src
URIs: uri
Suites: suite
Components: [component1] [component2] [...]
option1: value1
option2: value2

نشانی URI برای نوع deb باید پایه توزیع دبیان را مشخص کند، جایی که APT اطلاعات مورد نیاز خود را در آن خواهد یافت. suite می‌تواند یک مسیر دقیق را مشخص کند، که در این صورت اجزا (components) باید حذف شوند و suite باید با یک اسلش (/) پایان یابد. این امر زمانی مفید است که فقط یک زیردایرکتوری خاص از آرشیو مشخص‌شده توسط URI مورد نظر باشد. اگر suite یک مسیر دقیق را مشخص نکند، حداقل یک component باید وجود داشته باشد.

متغیر suite همچنین می‌تواند شامل یک متغیر باشد، $(ARCH) که به معماری دبیان (مانند amd64 یا armel) مورد استفاده در سیستم گسترش می‌یابد. این به فایل‌های sources.list مستقل از معماری اجازه می‌دهد تا مورد استفاده قرار گیرند. در حالت کلی این فقط هنگام مشخص کردن یک مسیر دقیق اهمیت دارد؛ در غیر این صورت APT به طور خودکار یک URI با معماری فعلی ایجاد خواهد کرد.

به ویژه در قالب سبک یک‌خطی، از آنجا که در هر خط فقط یک توزیع را می‌توان مشخص کرد، اگر زیرمجموعه‌ای از تمام توزیع‌ها یا اجزای موجود در آن مکان مورد نظر باشد، ممکن است نیاز به چندین خط برای یک URI یکسان وجود داشته باشد. پس از اینکه APT یک مجموعه کامل را به صورت داخلی ایجاد کرد، فهرست URI را مرتب می‌کند و ارجاعات متعدد به یک میزبان اینترنتی یکسان را در یک اتصال منفرد تجمیع می‌کند، به طوری که اتصالی را به طور ناکارآمد برقرار نکند، ببندد، کار دیگری انجام دهد، و سپس مجدداً با همان میزبان اتصال برقرار کند. APT همچنین اتصالات به میزبان‌های مختلف را موازی می‌کند تا با سایت‌های دارای پهنای باند کم به طور مؤثرتری کار کند.

بسیار مهم است که منابع به ترتیب اولویت فهرست شوند، به طوری که ارجح‌ترین منبع در ابتدا قرار گیرد. معمولاً این کار منجر به مرتب‌سازی بر اساس سرعت از سریع‌ترین به کندترین می‌شود (برای مثال، CD-ROM و به دنبال آن میزبان‌های یک شبکه محلی، و سپس میزبان‌های اینترنتی دوردست).

به عنوان مثال، منابع مربوط به توزیع شما در قالب منسوخ‌شده سبک یک‌خطی می‌تواند به شکل زیر باشد:

deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

یا در قالب سبک deb822 به شکل زیر:

Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

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

•Include (include) یک گزینه چندمقداری است که مشخص می‌کند کدام بسته‌ها باید از این مخزن استفاده شوند. سایر بسته‌ها پردازش نمی‌شوند.
•Exclude (exclude) یک گزینه چندمقداری است که مشخص می‌کند کدام بسته‌ها نباید از این مخزن استفاده شوند. آن‌ها پردازش نخواهند شد. این گزینه مانعة‌الجمع با Include است.
•Architectures (arch) یک گزینه چندمقداری است که مشخص می‌کند اطلاعات برای کدام معماری‌ها باید بارگیری شود. اگر این گزینه تنظیم نشده باشد، پیش‌فرض تمام معماری‌هایی است که توسط گزینه پیکربندی APT::Architectures تعریف شده‌اند.
•Languages (lang) یک گزینه چندمقداری است که مشخص می‌کند اطلاعات برای کدام زبان‌ها مانند شرح‌های ترجمه‌شده بسته باید بارگیری شود. اگر این گزینه تنظیم نشده باشد، پیش‌فرض تمام زبان‌هایی است که توسط گزینه پیکربندی Acquire::Languages تعریف شده‌اند.
•Targets (target) یک گزینه چندمقداری است که مشخص می‌کند apt تلاش خواهد کرد کدام اهداف بارگیری را از این منبع دریافت کند. اگر مشخص نشود، مجموعه پیش‌فرض توسط محدوده پیکربندی Acquire::IndexTargets تعریف می‌شود (اهداف با نام خود در فیلد Created-By مشخص می‌شوند). علاوه بر این، اهداف را می‌توان با استفاده از فیلد Identifier به عنوان یک گزینه با مقدار بولی به جای استفاده از این گزینه چندمقداری، فعال یا غیرفعال کرد.
•PDiffs (pdiffs) یک مقدار yes/no است که کنترل می‌کند آیا APT باید تلاش کند از PDiffها برای به‌روزرسانی نمایه‌های قدیمی به جای بارگیری کامل نمایه‌های جدید استفاده کند یا خیر. در صورتی که مخزن در دسترس بودن PDiffها را اعلام نکند، مقدار این گزینه نادیده گرفته می‌شود. پیش‌فرض آن مقدار گزینه‌ای با همین نام برای یک فایل نمایه خاص است که در محدوده Acquire::IndexTargets تعریف شده، که خود آن نیز به طور پیش‌فرض مقدار گزینه پیکربندی Acquire::PDiffs را دارد که پیش‌فرض آن yes است.
•By-Hash (by-hash) می‌تواند دارای مقادیر yes، no یا force باشد و کنترل می‌کند که آیا APT باید تلاش کند نمایه‌ها را از طریق یک نشانی URI ساخته‌شده از چکیده‌هش (hashsum) فایل مورد انتظار به جای استفاده از نام فایل پایدار و شناخته‌شده نمایه دریافت کند یا خیر. استفاده از این ویژگی می‌تواند از عدم تطابق چکیده‌هش جلوگیری کند، اما نیازمند آینه‌ای است که از آن پشتیبانی کند. مقدار yes یا no استفاده از این قابلیت را در صورتی که این منبع پشتیبانی از آن را اعلام کند فعال/غیرفعال می‌کند، در حالی که force این قابلیت را صرف‌نظر از آنچه منبع اعلام می‌کند فعال خواهد کرد. مقدار پیش‌فرض برابر با مقدار گزینه‌ای به همین نام برای یک فایل نمایه مشخص است که در حوزه Acquire::IndexTargets تعریف شده، که خود به طور پیش‌فرض بر اساس مقدار گزینه پیکربندی Acquire::By-Hash تعیین می‌شود که مقدار پیش‌فرض آن yes است.

علاوه بر این، گزینه‌هایی وجود دارند که در صورت تنظیم بر تمامی منابع دارای URI و Suite یکسان اثر می‌گذارند، بنابراین باید روی تمام این ورودی‌ها تنظیم شوند و نمی‌توانند بین اجزای مختلف متغیر باشند. APT تلاش خواهد کرد چنین ناهماهنگی‌هایی را شناسایی کرده و خطا دهد.

•Allow-Insecure (allow-insecure)، Allow-Weak (allow-weak) و Allow-Downgrade-To-Insecure (allow-downgrade-to-insecure) مقادیر بولی هستند که پیش‌فرض همگی آن‌ها no است. اگر روی yes تنظیم شوند بخش‌هایی از apt-secure(8) را دور می‌زنند و بنابراین نباید به سادگی استفاده شوند!
•Trusted (trusted) یک مقدار سه‌وضعیتی است که پیش‌فرض آن این است که APT تصمیم بگیرد آیا یک منبع قابل‌اعتماد تلقی می‌شود یا اینکه پیش از مثلاً نصب بسته‌ها از این منبع باید هشدار داده شود. این گزینه می‌تواند برای نادیده گرفتن و لغو آن تصمیم استفاده شود. مقدار yes به APT می‌گوید که همیشه این منبع را قابل‌اعتماد در نظر بگیرد، حتی اگر بررسی‌های اعتبارسنجی را پشت سر نگذارد. این مقدار بخش‌هایی از apt-secure(8) را غیرفعال می‌کند و بنابراین فقط باید در یک بستر محلی و قابل‌اعتماد (در صورت لزوم) استفاده شود، چرا که در غیر این صورت امنیت نقض می‌شود. مقدار no عکس این عمل را انجام می‌دهد و باعث می‌شود که منبع غیرقابل‌اعتماد در نظر گرفته شود حتی اگر بررسی‌های احراز هویت با موفقیت سپری شوند. مقدار پیش‌فرض را نمی‌توان به طور صریح تنظیم کرد.
•Signed-By (signed-by) گزینه‌ای است برای اینکه مخزن ملزم شود اعتبارسنجی apt-secure(8) را با مجموعه خاصی از کلیدها به جای تمام کلیدهای مورد اعتمادی که apt پیکربندی کرده است سپری کند. این گزینه به عنوان فهرستی از مسیرهای مطلق به فایل‌های دسته‌کلید (keyring) مشخص می‌شود (باید برای کاربر سیستمی _apt قابل دسترسی و خواندن باشند، بنابراین اطمینان حاصل کنید که همگان دسترسی خواندن روی فایل را دارند) و اثرانگشت‌های کلیدها برای انتخاب از این دسته‌کلیدها تعیین می‌گردد. مکان‌های پیشنهادی برای دسته‌کلیدها عبارتند از /usr/share/keyrings برای دسته‌کلیدهای مدیریت‌شده توسط بسته‌ها، و /etc/apt/keyrings برای دسته‌کلیدهای مدیریت‌شده توسط مدیر سیستم. اگر هیچ فایل دسته‌کلیدی مشخص نشود، پیش‌فرض دسته‌کلید trusted.gpg و تمام دسته‌کلیدهای موجود در دایرکتوری trusted.gpg.d/ است. اگر هیچ اثرانگشتی مشخص نشود، تمام کلیدهای موجود در دسته‌کلیدها انتخاب می‌شوند. یک اثرانگشت همچنین تمام امضاهای ایجادشده توسط یک زیرکلید از این کلید را می‌پذیرد؛ اگر این رفتار مطلوب نباشد، می‌توان یک علامت تعجب (!) به انتهای اثرانگشت اضافه کرد تا این رفتار غیرفعال شود. این گزینه در صورتی که در فایل Release قبلاً دریافت‌شده این مخزن تنظیم شده باشد، به طور پیش‌فرض مقدار گزینه‌ای با همین نام را می‌گیرد (فقط اثرانگشت‌ها را می‌توان از این طریق در آنجا مشخص کرد). در غیر این صورت، تمام کلیدهای موجود در دسته‌کلیدهای مورد اعتماد به عنوان امضاکنندگان معتبر برای این مخزن در نظر گرفته می‌شوند. این گزینه همچنین می‌تواند مستقیماً روی یک بلوک کلید عمومی تعبیه‌شده GPG تنظیم شود. برای کدگذاری خط خالی با فاصله‌های ابتدایی و "." نیاز به مراقبت ویژه است:
Types: deb
URIs: https://deb.debian.org
Suites: stable
Components: main contrib non-free non-free-firmware
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 .
 mDMEYCQjIxYJKwYBBAHaRw8BAQdAD/P5Nvvnvk66SxBBHDbhRml9ORg1WV5CvzKY
 CuMfoIS0BmFiY2RlZoiQBBMWCgA4FiEErCIG1VhKWMWo2yfAREZd5NfO31cFAmAk
 IyMCGyMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQREZd5NfO31fbOwD6ArzS
 dM0Dkd5h2Ujy1b6KcAaVW9FOa5UNfJ9FFBtjLQEBAJ7UyWD3dZzhvlaAwunsk7DG
 3bHcln8DMpIJVXht78sL
 =IE0r
 -----END PGP PUBLIC KEY BLOCK-----
•Check-Valid-Until (check-valid-until) یک مقدار yes/no است که کنترل می‌کند آیا APT باید تلاش کند حملات بازپخش (replay attacks) را شناسایی کند یا خیر. یک سازنده مخزن می‌تواند زمانی را اعلام کند که داده‌های ارائه‌شده در مخزن تا آن زمان باید معتبر در نظر گرفته شوند، و اگر این زمان فرا برسد اما داده‌های جدیدی ارائه نشود، داده‌ها منقضی‌شده تلقی شده و یک خطا صادر می‌شود. علاوه بر افزایش امنیت، چرا که یک مهاجم مخرب نمی‌تواند داده‌های قدیمی را برای همیشه ارسال کند تا از ارتقای کاربر به نسخه جدید جلوگیری نماید، این کار همچنین به کاربران کمک می‌کند آینه‌هایی را که دیگر به‌روزرسانی نمی‌شوند شناسایی کنند. با این حال، برخی مخازن مانند آرشیوهای تاریخی به صورت تعمدی دیگر به‌روزرسانی نمی‌شوند، بنابراین این بررسی را می‌توان با تنظیم این گزینه روی no غیرفعال کرد. پیش‌فرض آن مقدار گزینه پیکربندی Acquire::Check-Valid-Until است که خود به طور پیش‌فرض yes می‌باشد.
•Valid-Until-Min (valid-until-min) و Valid-Until-Max (valid-until-max) می‌توانند برای افزایش یا کاهش دوره زمانی به ثانیه که در آن داده‌های این مخزن معتبر تلقی می‌شوند، استفاده شوند. گزینه -Max به ویژه زمانی مفید است که مخزن فیلد Valid-Until را در فایل Release خود ارائه ندهد تا بتوانید مقدار دلخواه خود را تعیین کنید، در حالی که -Min می‌تواند برای افزایش زمان اعتبار در آینه‌هایی (محلی) که به ندرت به‌روزرسانی می‌شوند از یک آرشیو که مکرراً به‌روزرسانی می‌شود اما دسترسی کمتری دارد (که آن هم در sources.list است) به جای غیرفعال کردن کامل این بررسی استفاده شود. پیش‌فرض آن‌ها برابر با مقادیر گزینه‌های پیکربندی Acquire::Min-ValidTime و Acquire::Max-ValidTime است که هر دو به طور پیش‌فرض تنظیم نشده‌اند.
•Check-Date (check-date) یک مقدار yes/no است که کنترل می‌کند آیا APT باید زمان دستگاه را صحیح بداند و بنابراین بررسی‌های مربوط به زمان، مانند تایید اینکه فایل Release متعلق به آینده نیست را انجام دهد یا خیر. غیرفعال کردن آن همچنین گزینه Check-Valid-Until ذکر شده در بالا را غیرفعال می‌کند.
•Date-Max-Future (date-max-future) کنترل می‌کند که یک مخزن چقدر می‌تواند جلوتر از زمان فعلی باشد. پیش‌فرض آن مقدار گزینه پیکربندی Acquire::Max-FutureTime است که به طور پیش‌فرض 10 ثانیه است.
•InRelease-Path (inrelease-path) مسیر فایل InRelease را نسبت به موقعیت عادی یک فایل InRelease تعیین می‌کند. به طور پیش‌فرض، این گزینه تنظیم نشده است و APT تلاش خواهد کرد تا یک فایل InRelease یا در صورت شکست، یک فایل Release و فایل Release.gpg مرتبط با آن را دریافت کند. با تنظیم این گزینه، به جای فایل InRelease مسیر مشخص‌شده امتحان می‌شود، و حالت بازگشتی (fallback) به فایل‌های Release غیرفعال خواهد شد.
•Snapshot (snapshot) امکان انتخاب نسخه‌ای قدیمی‌تر از آرشیو را از سرویس تصویر لحظه‌ای (snapshot) فراهم می‌کند. مقادیر پشتیبانی‌شده عبارتند از: enable (پیش‌فرض) برای امکان‌پذیر ساختن انتخاب یک تصویر لحظه‌ای با گزینه --snapshot، شناسه (ID)، یا disable برای خارج کردن مخزن.

شناسه‌های تصویر لحظه‌ای معمولاً مهرهای زمانی به شکل YYYYMMDDTHHMMSSZ هستند، مانند 20220102T030405Z که بیانگر ۲ ژانویه ۲۰۲۲ ساعت ۰۳:۰۴:۰۵ به وقت UTC است، با این حال ممکن است کارسازها از انواع دیگری از شناسه‌ها نیز پشتیبانی کنند، و APT تاکنون هیچ بررسی خاصی روی آن‌ها انجام نمی‌دهد.

در قالب deb822، توصیف منابع با جزئیات بیشتر می‌تواند مفید باشد. گزینه‌های زیر مستقیماً توسط APT استفاده نمی‌شوند، اما پیشنهاد می‌شود هنگام ارائه فایل‌های .sources به کاربران، توسط اشخاص ثالث گنجانده شوند.

•Contact نشانی‌های ترجیحی برای ارتباط با گردانندگان مخزن را در یک یا چند خط مشخص می‌کند. این فیلد باید فهرستی جداشده با کاما از نشانی‌های ایمیل RFC5322 یا URLها باشد.
•Bugs یک نشانی اینترنتی HTTPS به یک سامانه عمومی پیگیری اشکالات یا دستورالعمل‌هایی در مورد نحوه گزارش اشکالات را مشخص می‌کند.
•Description توضیحی را برای مخزن مشخص می‌کند. این یک فیلد چندسطری است، که سطر اول چکیده و سطرهای بعدی ممکن است توضیحات بیشتری بیفزایند.

انواع URI که در حال حاضر شناسایی می‌شوند عبارتند از:

http (apt-transport-http(1))

طرحواره http یک کارساز HTTP را برای یک آرشیو مشخص می‌کند و رایج‌ترین روش مورد استفاده است. اگر آرشیو نیازمند اطلاعات ورود باشد، نشانی URI می‌تواند مستقیماً شامل اطلاعات ورود به سیستم باشد، اما استفاده از apt_auth.conf(5) ترجیح داده می‌شود. این روش همچنین از پراکسی‌های SOCKS5 و HTTP(S) چه از طریق پیکربندی ویژه apt یا تعیین‌شده توسط متغیر محیطی http_proxy در قالب زیر (با فرض یک پراکسی HTTP نیازمند احراز هویت) پشتیبانی می‌کند: http://user:pass@server:port. جزئیات احراز هویت برای پراکسی‌ها را می‌توان از طریق apt_auth.conf(5) نیز تامین کرد.

توجه داشته باشید که این اشکال احراز هویت ناامن هستند زیرا کل ارتباط با کارساز دوردست (یا پراکسی) رمزگذاری نشده است، بنابراین یک مهاجم با توانایی کافی می‌تواند ورود به سیستم و تمام تعاملات دیگر را مشاهده و ضبط کند. با این حال، مهاجم نمی‌تواند ارتباط را دستکاری کند زیرا مدل امنیت داده APT مستقل از روش انتقال انتخاب‌شده است. برای جزئیات به apt-secure(8) مراجعه کنید.

https (apt-transport-https(1))

طرحواره https یک کارساز HTTPS را برای یک آرشیو مشخص می‌کند و از نظر استفاده و گزینه‌های موجود بسیار شبیه به طرحواره http است. تفاوت اصلی در این است که ارتباط بین apt و کارساز (یا پراکسی) رمزگذاری می‌شود. توجه داشته باشید که رمزگذاری مانع از این نمی‌شود که یک مهاجم بداند apt با کدام کارساز (یا پراکسی) در حال ارتباط است و تحلیل‌های عمیق‌تر به طور بالقوه همچنان می‌تواند آشکار کند چه داده‌هایی بارگیری شده‌اند. اگر این موضوع مایه نگرانی است، طرحواره‌های مبتنی بر Tor که در ادامه به آن‌ها اشاره شده است ممکن است جایگزین مناسبی باشند.

mirror, mirror+scheme (apt-transport-mirror(1))

طرحواره mirror مکان یک فهرست آینه (mirrorlist) را مشخص می‌کند. به طور پیش‌فرض طرحواره مورد استفاده برای مکان http است، اما هر طرحواره دیگری را می‌توان از طریق mirror+scheme استفاده کرد. خود فهرست آینه می‌تواند شامل چندین نشانی مختلف URI برای آینه‌ها باشد که کلاینت APT می‌تواند به صورت شفاف از میان آن‌ها انتخاب کرده و در صورت بروز مشکل به عنوان جایگزین استفاده کند؛ این قابلیت هم به منظور توزیع بار روی آینه‌های موجود و هم برای اطمینان از این است که حتی در صورت در دسترس نبودن برخی از آینه‌های پیکربندی‌شده، کلاینت‌ها بتوانند داده‌ها را دریافت نمایند.

file

طرحواره file به هر دایرکتوری دلخواه در سیستم فایل اجازه می‌دهد تا به عنوان یک آرشیو در نظر گرفته شود. این برای مانت‌های NFS و آینه‌ها یا آرشیوهای محلی مفید است.

cdrom

طرحواره cdrom به APT اجازه می‌دهد تا از یک CD-ROM، DVD یا درایو USB محلی با امکان تعویض دیسک استفاده کند. از برنامه apt-cdrom(8) برای ایجاد ورودی‌های cdrom در فهرست منابع استفاده کنید.

copy

طرحواره copy دقیقاً مشابه طرحواره file است، با این تفاوت که بسته‌ها به جای استفاده مستقیم در محل خود، در دایرکتوری حافظه موقت (cache) کپی می‌شوند. این برای افرادی که از رسانه‌های جداشدنی برای کپی کردن فایل‌ها به اطراف با APT استفاده می‌کنند مفید است.

افزودن انواع URI قابل شناسایی بیشتر

APT را می‌توان با روش‌های بیشتری که در سایر بسته‌های اختیاری عرضه می‌شوند گسترش داد، که باید از طرح نام‌گذاری apt-transport-method پیروی کنند. برای نمونه، تیم APT همچنین بسته apt-transport-tor را نگهداری می‌کند که روش‌های دسترسی به URIهای HTTP و HTTPS مسیریابی‌شده از طریق شبکه Tor را فراهم می‌کند.

از آرشیو ذخیره‌شده به صورت محلی (یا مانت‌شده از طریق NFS) در /home/apt/debian برای stable/main، stable/contrib، stable/non-free و stable/non-free-firmware استفاده می‌کند.

deb file:/home/apt/debian stable main contrib non-free non-free-firmware
Types: deb
URIs: file:/home/apt/debian
Suites: stable
Components: main contrib non-free non-free-firmware

مشابه بالا، با این تفاوت که این نمونه از توزیع غیرپایدار (توسعه) unstable استفاده می‌کند.

deb file:/home/apt/debian unstable main contrib non-free non-free-firmware
Types: deb
URIs: file:/home/apt/debian
Suites: unstable
Components: main contrib non-free non-free-firmware

مشخصات منابع برای موارد بالا.

deb-src file:/home/apt/debian unstable main contrib non-free non-free-firmware
Types: deb-src
URIs: file:/home/apt/debian
Suites: unstable
Components: main contrib non-free non-free-firmware

سطر اول اطلاعات بسته را برای معماری‌های موجود در APT::Architectures دریافت می‌کند در حالی که سطر دوم همیشه amd64 و armel را بازیابی می‌نماید.

deb http://deb.debian.org/debian trixie main
deb [ arch=amd64,armel ] http://deb.debian.org/debian trixie main
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie
Components: main
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie
Components: main
Architectures: amd64 armel

از HTTP برای دسترسی به آرشیو در archive.debian.org استفاده کرده و تنها از ناحیه hamm/main استفاده می‌کند.

deb http://archive.debian.org/debian-archive hamm main
Types: deb
URIs: http://archive.debian.org/debian-archive
Suites: hamm
Components: main

از HTTPS برای دسترسی به آرشیو در deb.debian.org، زیر دایرکتوری debian استفاده می‌کند و تنها از ناحیه trixie/contrib بهره می‌گیرد.

deb https://deb.debian.org/debian trixie contrib
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie
Components: contrib

از HTTPS برای دسترسی به آرشیو در deb.debian.org، زیر دایرکتوری debian استفاده می‌کند و تنها از ناحیه unstable/contrib بهره می‌گیرد. اگر این سطر به همراه سطر موجود در مثال قبلی در sources.list ظاهر شود، برای هر دو سطر منبع از یک نشست واحد HTTPS استفاده خواهد شد.

deb https://deb.debian.org/debian unstable contrib
Types: deb
URIs: https://deb.debian.org/debian
Suites: unstable
Components: contrib

از HTTP برای دسترسی به آرشیو در ftp.tlh.debian.org، زیر دایرکتوری universe استفاده می‌کند، و تنها از فایل‌های یافت‌شده در unstable/binary-i386 روی دستگاه‌های i386، و unstable/binary-amd64 روی amd64، و به همین ترتیب برای سایر معماری‌های پشتیبانی‌شده استفاده می‌نماید. [توجه داشته باشید که این مثال فقط نحوه استفاده از متغیر جایگزینی را نشان می‌دهد؛ آرشیوهای رسمی دبیان بدین صورت ساختاریافته نیستند]

deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/
Types: deb
URIs: http://ftp.tlh.debian.org/universe
Suites: unstable/binary-$(ARCH)/

از HTTP برای دریافت بسته‌های دودویی و همچنین کدهای منبع از توزیع‌های stable، testing و unstable و بخش‌های main و contrib استفاده می‌کند.

deb http://deb.debian.org/debian stable main contrib
deb-src http://deb.debian.org/debian stable main contrib
deb http://deb.debian.org/debian testing main contrib
deb-src http://deb.debian.org/debian testing main contrib
deb http://deb.debian.org/debian unstable main contrib
deb-src http://deb.debian.org/debian unstable main contrib
Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: stable testing unstable
Components: main contrib

از یک مهر زمانی مشخص برای تصویرهای لحظه‌ای (Snapshots) استفاده می‌کند.

Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: stable testing unstable
Snapshot: 20250311T030104Z
Components: main contrib

پارامتر اختیاری --snapshot را مجاز نمی‌داند.

Types: deb deb-src
URIs: http://deb.debian.org/debian-security
Suites: stable-security
Snapshot: disable
Components: main contrib non-free-firmware

apt-get(8), apt.conf(5), /usr/share/doc/apt/acquire-additional-files.md.gz

صفحه اشکالات APT[1]. اگر مایلید اشکالی را در APT گزارش کنید، لطفاً /usr/share/doc/debian/bug-reporting.txt یا دستور reportbug(1) را ببینید.

Jason Gunthorpe

تیم APT

1.
صفحه اشکالات APT
09 April 2026 APT 3.3.3