| SOURCES.LIST(5) | APT | SOURCES.LIST(5) |
نام (NAME)
sources.list - فهرست منابع بستهها برای سامانه مدیریت بسته APT
توضیحات (DESCRIPTION)
فهرست منابع /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 اولویت بالاتری دارد.
SOURCES.LIST.D
دایرکتوری /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 استفاده میکند.
قالب یکخطی (ONE-LINE-STYLE FORMAT)
فایلهای این قالب دارای پسوند .list هستند. هر خط مشخصکننده یک منبع با یک نوع (مانند deb-src) شروع میشود که به دنبال آن گزینهها و آرگومانهای مربوط به این نوع میآیند. ورودیهای جداگانه را نمیتوان در خط بعدی ادامه داد. خطوط خالی نادیده گرفته میشوند، و نویسه # در هر کجای یک خط، ادامه آن خط را به عنوان توضیح علامتگذاری میکند. در نتیجه یک ورودی را میتوان با تبدیل کل خط به توضیح، غیرفعال کرد. اگر گزینههایی ارائه شوند، آنها با فاصله از یکدیگر جدا میشوند و همگی با هم درون براکت ([]) پس از نوع منبع و با یک فاصله از آن در خط قرار میگیرند. اگر گزینهای مقادیر متعددی را بپذیرد، این مقادیر با کاما (,) از یکدیگر جدا میشوند. نام گزینه با علامت مساوی (=) از مقدار(های) خود جدا میشود. گزینههای چندمقداری همچنین دارای جداکنندههای -= و += هستند که به جای جایگزین کردن مقدار پیشفرض با مقدار(های) داده شده، مقدار(های) پیشفرض را برای حذف یا اضافه کردن مقادیر داده شده تغییر میدهند.
این قالب سنتی است و توسط تمام نسخههای apt پشتیبانی میشود. توجه داشته باشید که تمام گزینههایی که در ادامه توضیح داده شدهاند توسط تمام نسخههای apt پشتیبانی نمیشوند. همچنین توجه داشته باشید که برخی از برنامههای قدیمیتر که این قالب را مستقلاً پردازش میکنند ممکن است با گزینهها سازگار نباشند، زیرا قبل از معرفی پشتیبانی از چندمعماری نامتداول بودند.
این قالب منسوخ شده است و در نهایت ممکن است حذف شود، اما نه پیش از سال 2029.
قالب DEB822 (DEB822-STYLE FORMAT)
فایلهای این قالب دارای پسوند .sources هستند. این قالب از نظر نحو شبیه به سایر فایلهای استفاده شده توسط دبیان و مشتقات آن است، مانند فایلهای متادیتا که apt از منابع پیکربندیشده بارگیری میکند یا فایل debian/control در یک بسته منبع دبیان. ورودیهای جداگانه با یک خط خالی از هم جدا میشوند؛ خطوط خالی اضافی نادیده گرفته میشوند، و نویسه # در ابتدای خط، کل خط را به عنوان یک توضیح علامتگذاری میکند. بنابراین یک ورودی را میتوان با تبدیل تکتک خطوط متعلق به آن بند به توضیح غیرفعال کرد، اما معمولاً سادهتر است که فیلد "Enabled: no" به بند اضافه شود تا ورودی غیرفعال گردد. حذف این فیلد یا تنظیم آن روی yes مجدداً آن را فعال میکند. گزینهها دارای نحوی مشابه هر فیلد دیگری هستند: یک نام فیلد که با دو نقطه (:) و اختیاری فاصلهها از مقدار(های) خود جدا میشود. به ویژه توجه داشته باشید که مقادیر چندگانه با فاصلههای سفید (مانند فاصله، تب و خطوط جدید) از یکدیگر جدا میشوند، نه با کاما مانند قالب یکخطی. فیلدهای چندمقداری مانند Architectures همچنین دارای Architectures-Add و Architectures-Remove هستند تا مقدار پیشفرض را به جای جایگزینی، اصلاح کنند.
این یک قالب جدید است که از نسخه 1.1 توسط خود apt پشتیبانی میشود. نسخههای پیشین چنین فایلهایی را همراه با یک پیام هشدار همانطور که قبلاً گفته شد نادیده میگیرند. هدف این است که به تدریج این قالب به قالب پیشفرض تبدیل شود و قالب یکخطی که پیشتر توضیح داده شد منسوخ گردد، چرا که ایجاد، گسترش و ویرایش آن برای انسانها و ماشینها به یک اندازه سادهتر است، به ویژه اگر منابع یا گزینههای متعددی درگیر باشند. توسعهدهندگانی که با منابع apt کار میکنند یا آنها را پردازش میکنند به شدت تشویق میشوند که پشتیبانی از این قالب را اضافه کرده و با تیم APT برای هماهنگی و به اشتراکگذاری این کار تماس بگیرند. کاربران میتوانند از همین حالا آزادانه این قالب را به کار گیرند، اما ممکن است با نرمافزارهایی که هنوز از این قالب پشتیبانی نمیکنند دچار مشکل شوند.
توضیح نوع مخازن DEB و DEB-SRC
نوع 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
گزینههای انواع DEB و DEB-SRC (THE DEB AND DEB-SRC TYPES: OPTIONS)
هر ورودی منبع میتواند گزینههای مشخصی داشته باشد تا تعیین کند به کدام منبع دسترسی پیدا شود و دادهها چگونه از آن دریافت گردند. قالب، نحو و نامهای گزینهها همانطور که توضیح داده شد بین سبکهای یکخطی و deb822 متفاوت است، اما هر دو دارای گزینههای یکسانی هستند. برای سادگی، ما نام فیلد deb822 را فهرست کرده و نام سبک یکخطی را در پرانتز ارائه میدهیم. به یاد داشته باشید که علاوه بر تنظیم صریح گزینههای چندمقداری، گزینه تغییر آنها بر اساس پیشفرض نیز وجود دارد، اما ما در اینجا آن نامها را به طور صریح فهرست نمیکنیم. گزینههای پشتیبانینشده بدون اخطار توسط تمام نسخههای APT نادیده گرفته میشوند.
علاوه بر این، گزینههایی وجود دارند که در صورت تنظیم بر تمامی منابع دارای URI و Suite یکسان اثر میگذارند، بنابراین باید روی تمام این ورودیها تنظیم شوند و نمیتوانند بین اجزای مختلف متغیر باشند. APT تلاش خواهد کرد چنین ناهماهنگیهایی را شناسایی کرده و خطا دهد.
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-----
شناسههای تصویر لحظهای معمولاً مهرهای زمانی به شکل YYYYMMDDTHHMMSSZ هستند، مانند 20220102T030405Z که بیانگر ۲ ژانویه ۲۰۲۲ ساعت ۰۳:۰۴:۰۵ به وقت UTC است، با این حال ممکن است کارسازها از انواع دیگری از شناسهها نیز پشتیبانی کنند، و APT تاکنون هیچ بررسی خاصی روی آنها انجام نمیدهد.
در قالب deb822، توصیف منابع با جزئیات بیشتر میتواند مفید باشد. گزینههای زیر مستقیماً توسط APT استفاده نمیشوند، اما پیشنهاد میشود هنگام ارائه فایلهای .sources به کاربران، توسط اشخاص ثالث گنجانده شوند.
مشخصات نشانی اینترنتی (URI SPECIFICATION)
انواع URI که در حال حاضر شناسایی میشوند عبارتند از:
http (apt-transport-http(1))
توجه داشته باشید که این اشکال احراز هویت ناامن هستند زیرا کل ارتباط با کارساز دوردست (یا پراکسی) رمزگذاری نشده است، بنابراین یک مهاجم با توانایی کافی میتواند ورود به سیستم و تمام تعاملات دیگر را مشاهده و ضبط کند. با این حال، مهاجم نمیتواند ارتباط را دستکاری کند زیرا مدل امنیت داده APT مستقل از روش انتقال انتخابشده است. برای جزئیات به apt-secure(8) مراجعه کنید.
https (apt-transport-https(1))
mirror, mirror+scheme (apt-transport-mirror(1))
file
cdrom
copy
افزودن انواع URI قابل شناسایی بیشتر
مثالها (EXAMPLES)
از آرشیو ذخیرهشده به صورت محلی (یا مانتشده از طریق 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
همچنین ببینید (SEE ALSO)
apt-get(8), apt.conf(5), /usr/share/doc/apt/acquire-additional-files.md.gz
اشکالات (BUGS)
صفحه اشکالات APT[1]. اگر مایلید اشکالی را در APT گزارش کنید، لطفاً /usr/share/doc/debian/bug-reporting.txt یا دستور reportbug(1) را ببینید.
نویسندگان (AUTHORS)
Jason Gunthorpe
تیم APT
یادداشتها (NOTES)
- 1.
- صفحه اشکالات APT
| 09 April 2026 | APT 3.3.3 |