| APT-TRANSPORT-MIRR(1) | APT | APT-TRANSPORT-MIRR(1) |
نام (NAME)
apt-transport-mirror - پروتکل انتقال APT برای انتخاب خودکارتر سرور آینه
توضیحات (DESCRIPTION)
این پروتکل انتقال APT به خودی خود پروتکلی برای دسترسی به مخازن محلی یا راه دور پیادهسازی نمیکند، بلکه یک فهرست آینه (mirrorlist) را دریافت کرده و تمامی درخواستها را به سرور(های) آینه انتخابشده از این فهرست هدایت میکند و از طریق پروتکلهای انتقال دیگر مانند apt-transport-http(1) به آنها دسترسی مییابد. عملکرد پایه این روش از نسخه 0.7.24 در apt در دسترس بوده است، اما تا نسخه 1.6 مستندسازی نشده بود؛ نسخهای که شامل بازنویسی کامل این پروتکل انتقال و قابلیتهای پشتیبانیشده آن بود. توجه داشته باشید که یک پروتکل انتقال هرگز مستقیماً توسط کاربر فراخوانی نمیشود، بلکه توسط ابزارهای APT بر اساس پیکربندی کاربر استفاده میگردد.
اگر دریافت یک فایل از طریق یک سرور آینه با شکست مواجه شود، این روش تضمین میکند که سرور آینه ممکن دیگری از فهرست به طور خودکار آزمایش شود تا زمانی که یا فایل دریافت شود یا هیچ سرور آینهای در فهرست باقی نماند، و بدین ترتیب قطعی سرورها و مشکلات مشابه را بهصورت شفاف مدیریت میکند.
پیامدهای امنیتی این پروتکل انتقال به ملاحظات امنیتی مرتبط با پروتکل انتقالِ استفادهشده برای دریافت فهرست آینهها و پروتکلهای انتقال درگیر در دسترسی به آینه(ها)ی انتخابشده توسط این پروتکل بستگی دارد.
گزینهها (OPTIONS)
این پروتکل انتقال در حال حاضر هیچ گزینه پیکربندی ندارد. انتخاب سرور آینه کاملاً بر اساس آینههای ارائهشده در فهرست آینهها و فایلهایی است که APT نیاز به دریافت آنها دارد.
قالب فهرست آینهها (Mirrorlist format)
یک فهرست آینه شامل یک یا چند خط است که هر کدام یک URI برای یک سرور آینه را مشخص میکنند. خطوط خالی و خطوطی که با نویسه هش (#) شروع میشوند نادیده گرفته میشوند. یک URI همیشه با یک طرحواره (scheme) آغاز میشود که پروتکل انتقال مورد استفاده برای آن سرور آینه را مشخص میکند. برای نمونه اگر URI با http: آغاز شود، پروتکل انتقال مسئول آن apt-transport-http(1) خواهد بود که ممکن است الزامات خاصی برای قالب بخش باقیمانده URI داشته باشد.
متادادههای مربوط به یک سرور آینه را میتوان در همان خط و با استفاده از یک کلید تب (tab) از URI جدا کرد. چندین مورد متاداده را نیز میتوان با تب یا فاصله از یکدیگر جدا نمود. (این یک ویژگی پیشرفته است که تنها در نسخههای apt >= 1.6 در دسترس است. نسخههای پیشین apt در تجزیه فهرستهای آینهای که از این ویژگی استفاده میکنند ناموفق خواهند بود.)
از نسخه 1.6 به بعد در apt، استفاده از فهرستهای آینه فشردهشده نیز پشتیبانی میشود. توجه داشته باشید که نام فایل فهرست آینه باید الگوریتم فشردهسازی استفادهشده را مشخص کند؛ هیچ تشخیص خودکاری بر اساس محتوای فایل وجود ندارد.
انتخاب آینه بر اساس متاداده (Mirror selection by metadata)
همانطور که در قالب مشخص شده است، یک سرور آینه میتواند متادادههای اضافی ضمیمهشدهای داشته باشد تا از انتخاب آن برای دریافت فایلی که با این متاداده مطابقت ندارد جلوگیری شود. به این ترتیب فهرست آینه میتواند به عنوان مثال شامل آینههای جزئی باشد که تنها به معماریهای خاصی سرویس میدهند و APT به طور خودکار برای فایلهایی که به یک معماری فهرستنشده نیاز دارند، آینه متفاوتی را انتخاب خواهد کرد. محدودیتهای پشتیبانیشده عبارتند از: معماری (arch)، نام کد انتشار (codename)، بخش مخزنی که فایل در آن قرار دارد (component)، زبانی که فایل برای آن اعمال میشود (lang)، نام مجموعه انتشار (suite) و نوع فایل (type).
ترتیب جایگزینی آینهها (Fallback order for mirrors)
اگر هیچ اولویتی برای یک سرور آینه از طریق کلید متاداده priority تعیین نشده باشد، ترتیبی که آینهها مورد تماس قرار میگیرند تصادفی است. اگر باید پیش از امتحان کردن آینههای یک مجموعه دیگر، مجموعه خاصی از آینهها اول امتحان شوند، میتوان اولویت را به طور صریح تعیین کرد. آینههای دارای کمترین شماره اول امتحان میشوند. آینههایی که هیچ اولویت صریحی برای آنها تعیین نشده است، به طور پیشفرض بالاترین شماره ممکن را میگیرند و بنابراین در آخر امتحان میشوند. انتخاب میان آینههایی با اولویت یکسان نیز تصادفی است.
فایلها به صورت پیشفرض روی چندین سرور آینه از مجموعهای که کمترین شماره اولویت را دارد توزیع میشوند: در صورتی که مجموعه شامل تعداد کافی آینه باشد حداقل از سه سرور آینه استفاده میشود، فراتر از آن تعداد آنها با جذر تعداد فایلهای دریافتشونده مقیاسبندی میشود (به عنوان مثال ۴ آینه برای ۱۶ فایل، ۱۰ آینه برای ۱۰۰ فایل) و هر فایل به آینهای اختصاص مییابد که در حال حاضر کمتر از بقیه این آینهها استفاده شده است. این توزیع (fan-out) را میتوان از طریق گزینههای apt.conf(5) شامل Acquire::Mirror::Fanout (مقدار sqrt (پیشفرض) یا none برای انتخاب تصادفی و مستقل یک آینه برای هر فایل) و Acquire::Mirror::Fanout-Limit (یک کران بالا برای تعداد آینههای فعال مورد استفاده، ۰ برای بدون محدودیت) کنترل کرد. آینههای یک مجموعه دیگر تنها در صورت بروز خطا همانطور که در بالا شرح داده شد امتحان میشوند.
پروتکلهای مجاز انتقال در فهرست آینهها (Allowed transports in a mirrorlist)
در دسترس بودن و انتخاب پروتکلهای انتقال در یک فهرست آینه بر اساس نحوه دسترسی کلاینت APT به فهرست آینه محدود میشود. اگر یک پروتکل انتقال محلی مانند file یا copy استفاده شود، فهرست آینه میتواند شامل منابع محلی نیز باشد، در حالی که فهرست آینهای که از طریق http دسترسی پیدا کرده است نمیتواند. علاوه بر این، یک فهرست آینه نمیتواند شامل یک فهرست آینه دیگر یا سایر پروتکلهای انتقال پوششدهنده (مانند apt-transport-tor) باشد. برای نحوه استفاده از این روشها همراه با متد mirror به مستندات این پروتکلهای انتقال مراجعه فرمایید.
توجه داشته باشید که نسخههای apt پیش از 1.6 از هیچ پروتکل انتقال دیگری به جز http پشتیبانی نمیکنند.
مثالها (EXAMPLES)
مثال پایه (Basic example)
یک مثال ساده از فهرست آینه که توسط تمام نسخههای apt با متد mirror (نسخه >= 0.7.24) پشتیبانی میشود و در آن کلاینت هر یک از سه آینه را انتخاب خواهد کرد:
http://ftp.de.debian.org/debian/ http://ftp.us.debian.org/debian/ http://deb.debian.org/debian/
با فرض اینکه فایلی با این محتوا با نام /etc/apt/mirrorlist.txt روی رایانه شما ذخیره شده باشد، میتوان از آن در sources.list(5) (از نسخه 1.6 در apt) به این شکل استفاده کرد:
deb mirror+file:/etc/apt/mirrorlist.txt trixie main
تمامی نسخههای متد mirror از فهرست آینه قابل دسترسی از طریق HTTP پشتیبانی میکنند، بنابراین با فرض اینکه این فهرست در http://apt.example.org/mirror.lst در دسترس باشد، مدخل sources.list بالا را میتوان در عوض به صورت زیر نوشت:
deb mirror://apt.example.org/mirror.lst trixie main
توجه داشته باشید که از نسخه 1.6 در apt، استفاده از mirror+http باید برای یکدستی نسبت به mirror ترجیح داده شود. عملکرد هر دو یکسان است.
مثال با انتخاب آینه بهبودیافته با متاداده (Example with metadata-enhanced mirror selection)
همانطور که در تعریف قالب توضیح داده شد، نسخههای apt قبل از 1.6 از این قابلیت پشتیبانی نمیکنند و در تجزیه فهرست آینه ناموفق خواهند بود. این فهرست آینه نمونه عمداً پیچیده طراحی شده است تا برخی از جنبههای انتخاب را نشان دهد. پیکربندی زیر فرض شده است: آینه اول یک آینه محلی قابل دسترسی از طریق متد file است، اما احتمالاً ناقص است. آینه دوم اتصال عالی دارد، اما تا آنجا یک آینه جزئی است که تنها شامل فایلهای مربوط به معماریهای amd64 و all است. آینههای باقیمانده آینههای متوسطی هستند که تنها در صورتی باید با آنها ارتباط برقرار شود که آینههای قبلی کار نکنند.
file:/srv/local/debian/mirror/ priority:1 type:index http://partial.example.org/mirror/ priority:2 arch:amd64 arch:all type:deb http://ftp.us.debian.org/debian/ type:deb http://ftp.de.debian.org/debian/ type:deb https://deb.debian.org/debian/
در این پیکربندی با این فهرست آینه، با فرض اینکه خود فهرست آینه از طریق یک پروتکل انتقال محلی مانند file دسترسی پیدا کرده باشد، آینه اول برای دانلود تمام فایلهای شاخص استفاده خواهد شد. اگر اینطور نباشد، یا اگر آینه به دلایل دیگر غیرقابل دسترس باشد یا فایل درخواستی را نداشته باشد، آینه دیگری برای دریافت فایل استفاده خواهد شد که بسته به نوع فایل انتخاب میشود: یک فایل شاخص توسط آخرین آینه در فهرست ارائه خواهد شد، در حالی که یک بسته از معماری amd64 توسط آینه دوم ارائه میشود و فایلهای مربوط به عنوان مثال معماری i386 توسط یکی از سه آینه آخر ارائه خواهند شد.
اشکالات (BUGS)
صفحه اشکالات APT[1]. اگر مایل به گزارش اشکال در APT هستید، لطفاً /usr/share/doc/debian/bug-reporting.txt یا دستور reportbug(1) را ببینید.
نویسندگان (AUTHORS)
تیم APT
یادداشتها (NOTES)
- 1.
- صفحه اشکالات APT
| 20 July 2026 | APT 3.3.3 |