Risposte:
Secondo la linea di deb sul tuo sorgente apt, apt recupererà:
Convalida se Release.gpg è una firma valida per il file Release e se il contenuto Packages.gz corrisponde al checksum di integrità presente nel file Release. In caso di mancata corrispondenza, viene segnalato un errore di integrità della firma del repository.
Il nome del file del pacchetto per il pacchetto richiesto è determinato dal contenuto Packages.gz precedentemente recuperato. Viene scaricato e il relativo checksum del contenuto deve corrispondere al contenuto del checksum Packages.gz o viene segnalato un errore di integrità.
L'ultima domanda non riguarda la struttura del mirror in sé, ma riguarda la sincronizzazione del mirror, che dipende dal processo di mirroring. È possibile sincronizzare utilizzando una posizione temporanea senza interrompere l'integrità dell'archivio durante la sincronizzazione. Non sono sicuro che tutti i mirror di Ubuntu lo facciano.
Joao ha risposto alla seconda metà della mia domanda, quindi ho studiato la prima metà da solo. A livello di root, ci sono quattro directory e un file.
root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz
(Anche nel mio repo del college, c'erano solo le prime due voci. Quindi gli ultimi 3 sembrano non essere essenziali per il funzionamento del repository.)
Il file ls-lr.gz
contiene l'output del ls -lr
comando come eseguito nella directory principale del repository.
La dists
directory sembra contenere la maggior parte dei metadati, inclusi tutti i file package.gz (che contiene un elenco di pacchetti) e Release.gpg / Release che firma il pacchetto. (Grazie a Joao per le informazioni)
La pool
directory contiene i file .deb effettivi. L'organizzazione è /pool/[section]/[letter]/[group]/packagename.deb
. Quindi la posizione effettiva del pacchetto python-subversion è /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb
, poiché subversion è il gruppo del pacchetto python-subversion e s è la prima lettera di sovversione.
La projects
directory sembra contenere alcuni file che descrivono in dettaglio come il mirror è stato sincronizzato con il repository originale.
La indices
directory contiene molti file, molti dei quali vuoti. I file non vuoti sembrano fornire alcuni metadati extra per i pacchetti.