apt-transport-mirror - Transport APT pro více automatizovaný výběr zrcadel
Tento transport APT sám o sobě neimplementuje protokol pro přístup k místním nebo vzdáleným úložištím, ale získává seznam zrcadel a přesměrovává všechny požadavky na zrcadla vybraná z tohoto seznamu a přistupuje k nim prostřednictvím jiných transportů, jako je apt-transport-http (1). Základní funkcionalita byla dostupná od apt 0.7.24, ale nebyla zdokumentována až do apt 1.6, která obsahovala kompletní přepracování transportu a jeho podporovaných funkcí. Všimněte si, že transport není nikdy volán přímo uživatelem, ale je používán nástroji APT na základě uživatelské konfigurace.
Pokud se získání souboru přes zrcadlo nezdaří, metoda zajistí, že se automaticky zkusí další možné zrcadlo ze seznamu, dokud nebude soubor načten nebo v seznamu nezůstane žádné zrcadlo, což transparentně řeší výpadky serveru a podobné problémy.
Bezpečnostní důsledky přenosu závisí na bezpečnostních úvahách spojených s přenosem použitým k získání seznamu zrcadel a na přenosech zapojených do přístupu k vybranému zrcadlu (zrcátkům) přenosem.
Tento přenos v současnosti nemá žádné možnosti konfigurace. Výběr zrcadel je založen výhradně na zrcadlech nabízených v seznamu zrcadel a na souborech, které APT potřebuje získat.
Zrcadlový seznam obsahuje jeden nebo více řádků, z nichž každý určuje URI pro zrcadlení. Prázdné řádky a řádky začínající znakem hash (#) jsou ignorovány. URI vždy začíná schématem URI, které definuje transport použitý pro toto zrcadlo. Pokud například URI začíná http:, odpovědný přenos je apt-transport-http(1), který může mít specifické požadavky na formát zbývající části URI.
Metadata o zrcadle mohou být uvedena na stejném řádku, oddělená od URI tabulátorem. Více položek metadat může být odděleno buď tabulátory, nebo mezerami. (Toto je pokročilá funkce dostupná pouze s apt >= 1.6. Dřívější verze apt nebudou schopny analyzovat mirrorlisty pomocí této funkce.)
Od apt 1.6 je také podporováno použití komprimovaných mirrorlistů. Všimněte si, že název souboru mirrorlistu musí specifikovat použitý kompresní algoritmus; neexistuje žádná automatická detekce na základě obsahu souboru.
Jak je uvedeno ve formátu, zrcadlo může mít připojena další metadata, aby se zabránilo výběru zrcadla pro získání souboru, který těmto metadatům neodpovídá. Takto může mirrorlist např. obsahovat částečná zrcadla obsluhující pouze určité architektury a APT automaticky vybere jiné zrcadlo pro soubory vyžadující neuvedenou architekturu. Podporovány jsou limity pro architekturu (arch), kódové jméno vydání (kódové jméno), komponentu úložiště, ve kterém je soubor (komponenta), jazyk, na který se soubor vztahuje (lang), název sady vydání (sadu) a typ soubor (typ).
Pokud není zrcadlu dána priorita prostřednictvím priority klíče metadat, pořadí, ve kterém jsou zrcadla kontaktována, je náhodné. Pokud by měla být nejprve vyzkoušena určitá sada zrcadel před pokusem o kteroukoli jinou, lze explicitně nastavit prioritu. Zrcátka s nejnižším číslem jsou vyzkoušena jako první. Zrcadla, která nemají žádnou explicitní prioritu, jsou standardně nastavena na nejvyšší možný počet, a proto jsou zkoušena jako poslední. Volba mezi zrcadly se stejnou prioritou je opět náhodná.
Dostupnost a výběr přenosů v mirrorlistu je omezena tím, jak klient APT přistupuje k mirrorlistu. Pokud je použit místní přenos, jako je soubor nebo kopie, může seznam zrcadlení obsahovat také místní zdroje, zatímco seznam zrcadlení přístupný přes http nikoli. Kromě toho nemůže seznam zrcadlení obsahovat seznam zrcadel nebo jiné obalové transporty (jako apt-transport-tor). Podívejte se na dokumentaci těchto transportů, jak je používat s metodou zrcadlení.
Všimněte si, že verze apt před 1.6 nepodporují žádný jiný přenos než http.
Základní příklad mirrorlistu podporovaný všemi verzemi apt s metodou zrcadlení (>= 0.7.24), ve které si klient vybere kterékoli ze tří zrcadel:
http://ftp.de.debian.org/debian/ http://ftp.us.debian.org/debian/ http://deb.debian.org/debian/
Za předpokladu, že soubor s tímto obsahem je na vašem počítači uložen jako /etc/apt/mirrorlist.txt, lze jej použít takto v sources.list(5) (od apt 1.6):
deb mirror+file:/etc/apt/mirrorlist.txt bookworm main
Všechny verze metody zrcadlení podporují mirrorlist přístupný přes HTTP, takže za předpokladu, že je k dispozici na http://apt.example.org/mirror.lst, výše uvedený záznam sources.list by mohl být zapsán jako:
deb mirror://apt.example.org/mirror.lst bookworm main
Všimněte si, že od apt 1.6 by mělo být z důvodu jednotnosti upřednostňováno použití mirror+http před mirrorem. Funkčnost je stejná.
Jak je vysvětleno v definici formátu, apt verze před 1.6 to nepodporují a selže analýza mirrorlistu. Příklad mirrorlistu je záměrně komplikovaný, aby ukázal některé aspekty výběru. Předpokládá se následující nastavení: První zrcadlo je lokální zrcadlo přístupné pomocí souborové metody, ale potenciálně neúplné. Druhé zrcadlo má skvělé spojení, ale je částečným zrcadlem, protože obsahuje pouze soubory související s architekturami amd64 a všemi. Zbývající zrcátka jsou průměrná zrcátka, která by měla být kontaktována pouze v případě, že ta dřívější nefungovala.
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/
V tomto nastavení s tímto mirrorlistem bude první zrcadlo použito ke stažení všech indexových souborů za předpokladu, že samotný mirrorlist je přístupný přes lokální transportní soubor. Pokud tomu tak není, je-li zrcadlo jinak nepřístupné nebo neobsahuje-li požadovaný soubor, použije se k získání souboru jiné zrcadlo, zvolené v závislosti na typu souboru: Indexový soubor bude obsluhován posledním zrcadlem v list, zatímco balíček architektury amd64 je obsluhován druhým a těmi např. architektura i386 jedním z posledních tří.
Stránka s chybami APT[1]. Pokud chcete nahlásit chybu v APT, podívejte se na /usr/share/doc/debian/bug-reporting.txt nebo na příkaz reportbug(1).
Tým APT
1. Chybová stránka APT: http://bugs.debian.org/src:apt