Jaka jest struktura repozytorium Ubuntu?


29

Jak zorganizowane są pliki w repozytorium Ubuntu? Jakie są ważne pliki w repozytorium? Co się stanie, gdy repozytorium stanie się niespójne, zepsute lub zostanie zsynchronizowane?

Odpowiedzi:


19

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ą.


niestety linki są zerwane
niebieskawy

Nie są zepsute, to tylko szablony, trzeba zastąpić „release” „COMPONENT”, binary- ”itd., Które są polami dynamicznymi.
João Pinto

18

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.gzzawiera dane wyjściowe ls -lrpolecenia uruchomionego w katalogu głównym repozytorium.

distsKatalog 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ę)

poolKatalog 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.

projectsKatalog wydaje się zawierać kilka plików szczegółowo jak lustro zostało zsynchronizowane z oryginalnego repo.

indicesKatalog zawiera wiele plików, w większości pusty. Niepuste pliki wydają się dostarczać dodatkowe metadane dla pakietów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.