[ précedent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ suivant ]

Référence du développeur Debian
Chapitre 5 - L'archive Debian


5.1 Aperçu

La distribution Debian GNU/Linux est composée d'un grand nombre de paquets Debian (fichiers .deb : à peu près 6800) et de quelques autres fichiers (documentation, images des disquettes d'installation, etc.).

Voici un exemple d'arborescence pour une archive Debian complète :

     dists/stable/main/
     dists/stable/main/binary-all/
     dists/stable/main/binary-all/admin/
     dists/stable/main/binary-all/base/
     dists/stable/main/binary-all/comm/
     dists/stable/main/binary-all/devel/
          ...
     dists/stable/main/binary-i386/
     dists/stable/main/binary-i386/admin/
     dists/stable/main/binary-i386/base/
          ...
     dists/stable/main/binary-m68k/
     dists/stable/main/binary-m68k/admin/
     dists/stable/main/binary-m68k/base/
          ...
     dists/stable/main/source/
     dists/stable/main/source/admin/
     dists/stable/main/source/base/
          ...
     dists/stable/main/disks-i386/
     dists/stable/main/disks-m68k/
          ...
     
     dists/stable/contrib/
     dists/stable/contrib/binary-all/
     dists/stable/contrib/binary-i386/
     dists/stable/contrib/binary-m68k/
          ...
     dists/stable/contrib/source/
     
     dists/stable/non-free/
     dists/stable/non-free/binary-all/
     dists/stable/non-free/binary-i386/
     dists/stable/non-free/binary-m68k/
          ...
     dists/stable/non-free/source/
     
     dists/testing/
     dists/testing/main/
          ...
     dists/testing/contrib/
          ...
     dists/testing/non-free/
          ...
     
     dists/unstable
     dists/unstable/main/
          ...
     dists/unstable/contrib/
          ...
     dists/unstable/non-free/
          ...
     
     pool/
     pool/a/
     pool/a/apt/
          ...
     pool/b/
     pool/b/bash/
          ...
     pool/liba/
     pool/liba/libalias-perl/
          ...
     pool/m/
     pool/m/mailx/
          ...

Comme vous pouvez le voir, le répertoire racine contient deux répertoires, dists/ et pool/. Le second est un ensemble de répertoires où sont stockés les paquets. Ceux-ci sont manipulés grâce à la base de données de l'archive et aux logiciels qui l'accompagnent. Le premier répertoire contient les distributions stable, testing et unstable. Le découpage en sous-répertoires est identique d'un répertoire de distribution à l'autre ; nous nous contenterons donc d'exposer ce découpage pour la distribution stable. Les fichiers Packages et Sources qui se trouvent dans les répertoires de distribution peuvent faire référence à des fichiers du répertoire pool/.

Le répertoire dists/stable contient trois répertoires nommés main, contrib et non-free.

Dans chacune de ces sections se trouve un répertoire contenant les paquets sources (source/), un répertoire pour chaque architecture supportée (binary-i386/, binary-m68k/, etc) et un répertoire pour les paquets indépendants de l'architecture (binary-all/).

La section main contient d'autres répertoires destinés aux images de disquettes et à quelques documentations essentielles pour installer la distribution Debian sur une architecture particulière (disk-i386/, disk-m68k/, etc).

Les répertoires binary-*/ et source/ sont à nouveau divisés en sous-sections.


5.2 Les sections

La section main constitue la distribution Debian GNU/Linux officielle. Elle est officielle parce qu'elle est conforme à toutes nos recommandations. Les deux autres sections divergent de ces recommandations à différents degrés, elles ne font donc pas officiellement partie de Debian GNU/Linux.

Chaque paquet de la section main doit être conforme aux Debian Free Software Guidelines et à toutes les autres recommandations décrites dans le Debian Policy Manual. Les DFSG[7] constituent notre définition de logiciel libre. Reportez-vous au Debian Policy Manual pour en savoir plus.

Les paquets de la section contrib doivent être conformes aux DFSG mais ne respectent pas d'autres contraintes. Ils peuvent par exemple dépendre de paquets de la section non-free.

Les paquets qui ne sont pas conformes aux DFSG sont rangés dans la section non-free. Bien que nous supportions l'usage de ces paquets et qu'ils bénéficient de nos infrastructures (système de suivi des bogues, listes de diffusion, etc), ces paquets non-free ne font pas partie de la distribution Debian.

Le Debian Policy Manual donne des définitions plus précises pour ces trois sections. Les paragraphes précédants ne constituent qu'une introduction.

La séparation de l'archive en trois sections est importante pour toute personne qui désire distribuer Debian, que ce soit par serveur FTP ou sur cédérom. Il suffit de distribuer les sections main et contrib pour éviter tout problème légal. Certains paquets de la section non-free interdisent leur distribution à titre commercial par exemple.

D'un autre coté, un distributeur de cédérom pourra facilement vérifier individuellement les licences des paquets de la section non-free et ajouter autant de paquets qu'il est autorisé à le faire sur ses cédéroms (dans la mesure où cela varie énormément d'un distributeur à l'autre ce travail ne peut être fait par les développeurs Debian).


5.3 Les architectures

À ses débuts, le noyau Linux existait uniquement pour les architectures Intel x86 ; il en était de même pour Debian. Linux devenant de plus en plus populaire, il a été porté vers d'autres architectures.

Le noyau 2.0 existe pour les architectures Intel x86, DEC Alpha, SPARC, Motorola, 680x0 (Atari, Amiga, et Macintosh), MIPS et PowerPC. Le noyau 2.2 supporte encore plus d'architectures dont ARM et UltraSPARC. Puisque Linux supporte ces architectures, Debian a décidé qu'il devait les supporter aussi. C'est pourquoi plusieurs portages sont en cours ; en fait il y a aussi des portages vers d'autres noyaux. À coté d'i386 (notre nom pour Intel x86), nous avons, au moment où j'écris m68k, alpha, powerpc, sparc, hurd-i386, et arm.

Debian GNU/Linux 1.3 est disponible uniquement pour i386. Debian 2.0 supporte les architectures i386 et m68k. Debian 2.1 supporte les architectures i386, m68k, alpha et sparc. Debian 2.2 ajoute le support de l'architecture powerpc.

Vous trouverez des informations destinées aux développeurs à propos d'un portage particulier sur la page Portage Debian.


5.4 Les sous-sections

Les sections main, contrib et non-free sont divisées en sous-sections pour simplifier le processus d'installation et la maintenance de l'archive Debian. Ces sous-sections ne sont pas définies formellement, à l'exception peut-être de la sous-section base. Elles existent pour simplifier l'organisation des paquets et la navigation dans la liste des paquets disponibles. Reportez-vous à la distribution courante pour connaître la liste des sous-sections disponibles.

Notez qu'avec l'introduction de la nouvelle organisation de l'archive (voir le répertoire racine pool/), les sous-sections matérialisées par des répertoires pourraient disparaître à l'avenir. Elles seront cependant conservées dans le champ Section de l'en-tête des paquets.


5.5 Les paquets

Il existe deux types de paquets Debian : les paquets sources et les paquets binaires.

Les paquets sources sont constitués de deux ou trois fichiers :

Si un paquet est développé spécifiquement pour le projet Debian et n'est pas distribué en dehors de Debian, il n'y a qu'un fichier .tar.gz qui contient les sources du programme. Si un paquet est distribué ailleurs, le fichier .orig.tar.gz contient ce que l'on appelle code source amont, c'est-à-dire le code source distribué par le mainteneur amont (il s'agit souvent de l'auteur du logiciel). Dans ce cas, le fichier .diff.gz contient les modifications faites par le responsable Debian.

Le fichier .dsc liste tous les fichiers sources avec leurs sommes de contrôle (md5sums) et quelques informations supplémentaires concernant le paquet (responsable, version, etc).


5.6 Les répertoires des distributions

L'organisation des répertoires présentée précédemment est elle-même englobée par les répertoires des distributions. Chaque distribution est incluse dans le répertoire pool à la racine de l'archive Debian.

En résumant, une archive Debian a un répertoire racine sur un serveur FTP. Par exemple, sur le site miroir ftp.us.debian.org, l'archive Debian se trouve dans /debian ce qui est un emplacement courant. Un autre emplacement courant est /pub/debian.

Une distribution est composée de paquets Debian sources et binaires et des fichiers Sources et Packages correspondants. Ces derniers contiennent la description de tous les paquets. Les premiers sont conservés dans le répertoire pool/ tandis que les seconds sont conservés dans le répertoire dists/ de l'archive (pour des questions de compatibilité descendante)


5.6.1 Stable, testing et unstable

Il y a toujours une distribution appelée stable (dans le répertoire dists/stable), une distribution appelée testing (dans le répertoire dists/testing) et une distribution appelée unstable (dans le répertoire dists/unstable). Ceci reflète le processus de développement du projet Debian.

Les développements se font sur la distribution unstable[8] (c'est pourquoi elle est aussi appelée distribution de développement). Chaque développeur Debian peut modifier ses paquets à tout moment dans cette distribution. Ainsi son contenu change tous les jours. Comme aucun effort particulier n'est fait pour s'assurer que tout fonctionne correctement dans cette distribution, elle est parfois instable.

Les paquets sont copiés de unstable vers testing s'ils satisfont certains critères. Pour entrer dans la distribution testing un paquet doit faire partie de l'archive depuis deux semaines et ne doit pas avoir de bogue bloquant pour la distribution (RC bug). Passé cette période, le paquet sera installé dans testing dès que les paquets dont il dépend y seront. Ce processus est automatique. Vous pouvez consulter quelques notes sur ce système ainsi que les update_excuses (qui indiquent quels paquets sont candidats, lesquels ne le sont pas et pourquoi) à l'adresse http://ftp-master.debian.org/testing/.

Après une période de développement, quand le responsable de distribution[9] le juge opportun, la distribution testing est gelée, ce qui signifie que les conditions à remplir pour qu'un paquet passe de unstable à testing sont durcies. Les paquets trop bogués sont supprimés et les seules mises à jours autorisées concernent les corrections de bogues. Après quelques temps, selon l'avancement, la distribution entre dans une phase de « gel complet » où les seules modifications acceptées concernent la procédure d'installation. Cette phase s'appelle un « cycle de test » et cela peut durer jusqu'à deux semaines. Il peut y avoir plusieurs cycles de tests avant que le responsable de distribution ne la déclare prête pour la diffusion. À la fin du dernier cycle de test, la distribution frozen est renommée stable, remplaçant l'ancienne distribution stable qui est enlevée à cette occasion (elle peut être retrouvée à l'adresse archive.debian.org).

Ce cycle de développement est basé sur l'idée que la distribution instable devient stable après une période de test (testing). Une distribution contient inévitablement des bogues, même si elle est classée stable. C'est pourquoi les distributions stables sont mises à jour de temps en temps. Les corrections introduites sont testées avec une grande attention et ajoutées individuellement à l'archive pour diminuer les risques d'introduire de nouveaux bogues. Vous pouvez trouver des paquets proposés pour les mises à jour de stable dans le répertoire proposed-updates. De temps en temps, les paquets de ce répertoire qui ne présentent pas de problème sont installés dans la distribution stable et le numéro de révision de cette distribution est incrémenté (« 1.3 » devient « 1.3r1 », « 2.0r2 » devient « 2.0r3 » et ainsi de suite).

Notez que pendant la période de gel les développements continuent sur la distribution instable car cette distribution reste en place.


5.6.2 Experimental

La distribution experimental est une distribution particulière. Ce n'est pas une distribution à part entière comme le sont stable et unstable. Elle est prévue pour servir de plate-forme de développement pour les projets expérimentaux qui ont de grandes chances de détruire le système ou bien pour des logiciels qui sont vraiment trop instables pour être inclus dans la distribution unstable (mais pour qui une mise en paquet est justifiée). Les utilisateurs qui téléchargent et installent des paquets depuis experimental sont prévenus : on ne peut pas faire confiance à la distribution experimental.

Si un logiciel risque de causer des dégats importants, il sera sûrement préférable de le mettre dans la distribution experimental. Un système de fichier compressé, par exemple, devrait probablement aller dans experimental.

Une nouvelle version amont qui ajoute de nouvelles fonctions tout en supprimant de nombreuses autres ne devra pas être téléchargée dans l'archive Debian, elle pourra cependant être téléchargée dans experimental. Une nouvelle version non finalisée d'un logiciel qui utilise une méthode de configuration complètement différente pourrait aller dans experimental au gré du responsable. Si vous travaillez sur un cas de mise à jour complexe ou incompatible vous pouvez aussi utiliser experimental comme plate-forme d'intégration et ainsi fournir un accès aux testeurs.

Quelques logiciels expérimentaux peuvent aller dans unstable, avec un avertissement dans la description mais ce n'est pas recommandé car les paquets de unstable se propagent dans testing et aboutissent dans stable.

Un nouveau logiciel qui ne risque pas d'endommager le système ira directement dans unstable.

Une alternative à experimental consiste à utiliser vos pages personnelles sur le serveur people.debian.org (klecker.debian.org).


5.7 Les noms de distribution

Chaque distribution Debian diffusée a un nom : Debian 1.1 s'appelle « buz » ; Debian 1.2, « rex » ; Debian 1.3 « bo » ; Debian 2.0, « hamm » ; Debian 2.1, « slink »; Debian 2.2 « potato » et Debian 3.0 « woody ». Il y a aussi une pseudo-distribution nommée « sid », il s'agit de la distribution unstable ; comme les paquets vont de unstable à testing quand ils approchent de la stabilité, la distribution « sid » n'est jamais diffusée. En plus du contenu habituel d'une distribution Debian, « sid » contient des paquets pour des architectures qui ne sont pas encore officiellement supportées ou pour lesquelles la distribution n'a pas encore été diffusée. Ces architectures doivent rejoindre les architectures supportées à une date future.

Comme Debian est un projet de développement ouvert (i.e. tout le monde peut participer et suivre les développements) même les distributions unstable et testing sont disponibles sur les serveurs HTTP et FTP de Debian.

Si nous avions nommé le répertoire qui contient la prochaine version àc diffuser « testing », il aurait fallu le renommer « stable » au moment de la diffusion, ce qui aurait forcé les miroirs FTP à re-télécharger la distribution complète (qui est plutôt volumineuse).

D'un autre coté, si une distribution s'appelle Debian-x.y dès le départ, des personnes pourraient s'imaginer que la distribution Debian x.y est disponible. (Cela s'est produit par le passé, un distributeur avait gravé des cédéroms Debian 1.0 en utilisant une version de développement pré-1.0. C'est pour cette raison que la première version officielle était la version 1.1 et non la 1.0.)

En conséquence, les noms de répertoire des distributions dans l'archive sont déterminés par leurs noms de code et non par leur statut (exemple : slink). Ces noms sont identiques pendant la période de développement et une fois la distribution diffusée ; des liens symboliques, qui peuvent être modifiés facilement, indiquent la distribution stable actuelle.

Tout ceci explique pourquoi les répertoires des distributions sont nommés à partir des noms de code des distributions alors que stable, testing et unstable sont des liens symboliques qui pointent vers les répertoires appropriés.


[ précedent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ suivant ]

Référence du développeur Debian

Version 2.11, 08 avril 2002 (version française 20020315).
Adam Di Carlo, responsable actuel aph@debian.org
Christian Schwarz schwarz@debian.org
Ian Jackson ijackson@gnu.ai.mit.edu
 
version française par Antoine Hulin antoine.hulin@origan.fdn.org
et les membres de la liste debian-l10n-french@lists.debian.org