Qual è la struttura di un repository Ubuntu?


29

Come sono organizzati i file in un repository Ubuntu? Quali sono i file importanti in un repository? Cosa succede quando un repository diventa incoerente, rotto o sincronizzato?

Risposte:


19

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.


sfortunatamente i collegamenti sono interrotti
bluastro

Non sono rotti, sono solo modelli, dovrai sostituire la "release" "COMPONENT", binary- ", ecc., Che sono campi dinamici.
João Pinto,

18

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.gzcontiene l'output del ls -lrcomando come eseguito nella directory principale del repository.

La distsdirectory 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 pooldirectory 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 projectsdirectory sembra contenere alcuni file che descrivono in dettaglio come il mirror è stato sincronizzato con il repository originale.

La indicesdirectory contiene molti file, molti dei quali vuoti. I file non vuoti sembrano fornire alcuni metadati extra per i pacchetti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.