36 votes

Quelle est la structure d'un dépôt Ubuntu ?

Comment sont organisés les fichiers d'un dépôt Ubuntu ? Quels sont les fichiers importants dans un dépôt ? Que se passe-t-il lorsqu'un dépôt est incohérent, cassé ou en cours de synchronisation ?

23voto

apoorv020 Points 964

Joao a répondu à la seconde moitié de ma question, j'ai donc enquêté sur la première moitié par moi-même. Au niveau de la racine, il y a quatre répertoires et un fichier.

root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz

(De même, dans mon repo de collège, seules les deux premières entrées étaient présentes. Donc les 3 dernières semblent être non essentielles au fonctionnement du repo).

Le dossier ls-lr.gz contient la sortie de la ls -lr telle qu'exécutée sur le répertoire racine du référentiel.

El dists semble contenir la plupart des métadonnées, y compris le fichier packages.gz (qui contient la liste des paquets) et Release.gpg/Release qui signe le paquet. (Merci à Joao pour l'info)

El pool contient les fichiers .deb proprement dits. L'organisation est la suivante /pool/[section]/[letter]/[group]/packagename.deb . Ainsi, l'emplacement réel du paquet Python-subversion est le suivant /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb car subversion est le groupe du paquet Python-subversion, et s est la première lettre de subversion.

El projects semble contenir quelques fichiers détaillant comment le miroir a été synchronisé avec le dépôt original.

El indices contient de nombreux fichiers, pour la plupart vides. Les fichiers non vides semblent fournir des métadonnées supplémentaires pour les paquets.

21voto

Lorin Hochstein Points 11816

Selon la ligne deb de votre source apt, apt va chercher :

Il vérifie si le fichier Release.gpg est une signature valide pour le fichier Release, et si le contenu du fichier Packages.gz correspond à la somme de contrôle d'intégrité présente dans le fichier Release. S'il y a un désaccord, un échec de l'intégrité de la signature du référentiel est signalé.

Le nom du fichier du paquet demandé est déterminé à partir du contenu de Packages.gz récupéré précédemment. Il est téléchargé, et la somme de contrôle de son contenu doit correspondre à celle de Packages.gz, sinon un échec d'intégrité est signalé.

Votre dernière question ne concerne pas la structure du miroir en soi, mais la synchronisation du miroir, qui dépend du processus de mise en miroir. Il est possible de synchroniser en utilisant un emplacement temporaire sans rompre l'intégrité de l'archive pendant la synchronisation. Je ne suis pas sûr que tous les miroirs Ubuntu le fassent.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X