apt-transport-mirror - Transport APT dla bardziej zautomatyzowanego wyboru lusterek
Ten transport APT nie implementuje protokołu umożliwiającego samodzielny dostęp do lokalnych lub zdalnych repozytoriów, ale uzyskuje listę serwerów lustrzanych i przekierowuje wszystkie żądania do serwerów lustrzanych wybranych z tej listy, uzyskując do nich dostęp za pośrednictwem innych transportów, takich jak apt-transport-http (1). Podstawowa funkcjonalność była dostępna od wersji 0.7.24, ale była nieudokumentowana aż do wersji 1.6, która zawierała kompletną przeróbkę transportu i obsługiwanych funkcji. Należy zauważyć, że transport nigdy nie jest wywoływany bezpośrednio przez użytkownika, ale używany przez narzędzia APT na podstawie konfiguracji użytkownika.
Jeśli akwizycja pliku za pośrednictwem kopii lustrzanej nie powiedzie się, metoda zapewnia automatyczne wypróbowanie innego możliwego kopii lustrzanej z listy, dopóki plik nie zostanie odzyskany lub na liście nie pozostanie żadna kopia lustrzana, w przejrzysty sposób obsługując przestoje serwera i podobne problemy.
Implikacje związane z bezpieczeństwem transportu zależą od względów bezpieczeństwa związanych z transportem użytym do pozyskania listy serwerów lustrzanych i transportami zaangażowanymi w dostęp do wybranych serwerów lustrzanych przez transport.
Ten transport nie ma obecnie żadnych opcji konfiguracji. Wybór serwerów lustrzanych opiera się wyłącznie na serwerach lustrzanych oferowanych na liście serwerów lustrzanych oraz plikach, które APT musi pozyskać.
Lista serwerów lustrzanych zawiera jeden lub więcej wierszy, z których każdy określa identyfikator URI dla serwera lustrzanego. Linie puste i zaczynające się od znaku krzyżyka (#) są ignorowane. URI zawsze zaczyna się od schematu URI, który definiuje transport używany dla tego serwera lustrzanego. Jeśli na przykład URI zaczyna się od http:, odpowiedzialnym transportem jest apt-transport-http(1), który może mieć określone wymagania dotyczące formatu pozostałej części URI.
Metadane dotyczące serwera lustrzanego można podać w tej samej linii, oddzielonej od URI tabulatorem. Wiele elementów metadanych można oddzielić tabulatorami lub spacjami. (Jest to zaawansowana funkcja dostępna tylko z apt >= 1.6. Wcześniejsze wersje apt nie będą analizować list lustrzanych przy użyciu tej funkcji.)
Od apt 1.6 obsługiwane jest również użycie skompresowanych list lustrzanych. Zauważ, że nazwa pliku listy lustrzanej musi określać używany algorytm kompresji; nie ma automatycznego wykrywania na podstawie zawartości pliku.
Jak określono w formacie, kopia lustrzana może mieć dołączone dodatkowe metadane, aby uniemożliwić wybranie kopii lustrzanej do pozyskania pliku, który nie pasuje do tych metadanych. W ten sposób lista lustrzana może m.in. zawierają częściowe kopie lustrzane obsługujące tylko niektóre architektury, a APT automatycznie wybierze inny serwer lustrzany dla plików wymagających architektury niewymienionej na liście. Obsługiwane są ograniczenia dotyczące architektury (arch), nazwy kodowej wydania (nazwa kodowa), komponentu repozytorium, w którym znajduje się plik (component), języka, którego dotyczy plik (lang), nazwy pakietu wydania (suite) oraz typu plik (typ).
Jeśli serwerowi lustrzanemu nie zostanie nadany priorytet za pomocą priorytetu klucza metadanych, kolejność kontaktowania się z serwerami lustrzanymi jest losowa. Jeśli określony zestaw kopii lustrzanych powinien zostać wypróbowany jako pierwszy przed wypróbowaniem jakiegokolwiek innego zestawu, można jawnie ustawić priorytet. Lustra o najniższym numerze są wypróbowywane jako pierwsze. Kopie lustrzane, które nie mają wyraźnego priorytetu, ustawiają domyślnie najwyższą możliwą liczbę i dlatego są wypróbowywane jako ostatnie. Wybór między lustrami o tym samym priorytecie jest ponownie losowy.
Dostępność i wybór transportów na liście lustrzanej jest ograniczony przez sposób, w jaki klient APT uzyskuje dostęp do listy lustrzanej. Jeśli używany jest transport lokalny, taki jak plik lub kopia, lista serwerów lustrzanych może również zawierać źródła lokalne, podczas gdy lista serwerów lustrzanych dostępna przez http nie może. Ponadto lista serwerów lustrzanych nie może zawierać listy serwerów lustrzanych ani innych transportów opakowujących (takich jak apt-transport-tor). Zobacz dokumentację tych transportów, jak ich używać metodą lustrzaną.
Zauważ, że wersje apt przed 1.6 nie obsługują innego transportu niż http.
Podstawowy przykład listy lustrzanej obsługiwany przez wszystkie wersje apt z metodą lustrzaną (>= 0.7.24), w której klient wybierze dowolny z trzech serwerów lustrzanych:
http://ftp.de.debian.org/debian/ http://ftp.us.debian.org/debian/ http://deb.debian.org/debian/
Zakładając, że plik z tą zawartością jest przechowywany jako /etc/apt/mirrorlist.txt na twoim komputerze, może być używany w ten sposób w sources.list(5) (od apt 1.6):
deb mirror+file:/etc/apt/mirrorlist.txt bookworm main
Wszystkie wersje metody mirror obsługują listę serwerów lustrzanych dostępną przez HTTP, więc zakładając, że jest ona dostępna pod adresem http://apt.example.org/mirror.lst, powyższy wpis w source.list mógłby zostać zapisany jako:
deb mirror://apt.example.org/mirror.lst bookworm main
Zauważ, że od apt 1.6 użycie mirror+http powinno być preferowane w stosunku do mirrora dla jednolitości. Funkcjonalność jest taka sama.
Jak wyjaśniono w definicji formatu, wersje apt przed 1.6 nie obsługują tego i nie powiedzie się podczas analizowania listy lustrzanej. Przykładowa lista lustrzana jest celowo skomplikowana, aby pokazać niektóre aspekty wyboru. Zakłada się następującą konfigurację: Pierwszy serwer lustrzany jest lokalnym serwerem lustrzanym dostępnym za pośrednictwem metody plikowej, ale potencjalnie niekompletnym. Drugi serwer lustrzany ma świetne połączenie, ale jest częściowym serwerem lustrzanym, ponieważ zawiera tylko pliki związane z architekturą amd64 i innymi. Pozostałe serwery lustrzane są średnimi serwerami lustrzanymi, z którymi należy się kontaktować tylko wtedy, gdy wcześniejsze nie działały.
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/
W tej konfiguracji z tą listą serwerów lustrzanych pierwszy serwer lustrzany będzie używany do pobierania wszystkich plików indeksu, zakładając, że dostęp do samej listy serwerów lustrzanych odbywa się za pośrednictwem lokalnego pliku transportowego. Jeśli tak nie jest, jeśli serwer lustrzany jest niedostępny w inny sposób lub jeśli nie zawiera żądanego pliku, do pozyskania pliku zostanie użyty inny serwer lustrzany wybrany w zależności od typu pliku: Plik indeksu będzie obsługiwany przez ostatni serwer lustrzany w list, podczas gdy pakiet architektury amd64 obsługiwany jest przez drugi i te m.in. architektura i386 przez jedną z trzech ostatnich.
Strona błędu APT[1]. Jeśli chcesz zgłosić błąd w APT, zobacz /usr/share/doc/debian/bug-reporting.txt lub polecenie reportbug(1).
zespół APT
1. Strona błędu APT: http://bugs.debian.org/src:apt