Odpowiedzi:
Zgodnie z linią deb na twoim źródle apt, apt pobierze:
Sprawdza, czy plik Release.gpg jest prawidłowym podpisem pliku Release i czy zawartość Packages.gz jest zgodna z sumą kontrolną integralności zawartą w pliku Release. W przypadku niezgodności zgłaszana jest awaria integralności podpisu repozytorium.
Nazwa pliku pakietu dla żądanego pakietu jest określana na podstawie wcześniej pobranej zawartości Packages.gz. Jest pobierany, a jego suma kontrolna zawartości musi być zgodna z zawartością sumy kontrolnej Packages.gz, w przeciwnym razie zgłaszana jest awaria integralności.
Twoje ostatnie pytanie nie dotyczy samej struktury lustra, dotyczy synchronizacji lustra, która zależy od procesu tworzenia kopii lustrzanej. Możliwe jest synchronizowanie przy użyciu lokalizacji tymczasowej bez naruszenia integralności archiwum podczas synchronizacji. Nie jestem pewien, czy wszystkie serwery lustrzane Ubuntu to robią.
Joao odpowiedział na drugą połowę mojego pytania, więc zbadałem pierwszą połowę na własną rękę. Na poziomie głównym istnieją cztery katalogi i jeden plik.
root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz
(Również w moim repozytorium z college'u były tam tylko dwa pierwsze wpisy. Więc ostatnie 3 wydają się nieistotne dla funkcjonowania repo.)
Plik ls-lr.gz
zawiera dane wyjściowe ls -lr
polecenia uruchomionego w katalogu głównym repozytorium.
dists
Katalog wydaje się zawierać większość metadanych, w tym wszystkich plików Packages.gz (który zawiera listę pakietów) i Release.gpg / Release, która podpisuje pakiet. (Podziękowania dla Joao za informację)
pool
Katalog zawiera aktualne pliki .deb. Organizacja jest /pool/[section]/[letter]/[group]/packagename.deb
. Zatem faktyczna lokalizacja pakietu python-subversion jest taka /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb
, ponieważ subversion jest grupą pakietu python-subversion, a s jest pierwszą literą subversion.
projects
Katalog wydaje się zawierać kilka plików szczegółowo jak lustro zostało zsynchronizowane z oryginalnego repo.
indices
Katalog zawiera wiele plików, w większości pusty. Niepuste pliki wydają się dostarczać dodatkowe metadane dla pakietów.