Chapitre 6. Les archives FTP de Debian

Table des matières

6.1. Combien de distributions de Debian y a-t-il ?
6.2. À quoi correspondent tous les noms comme etch, lenny, etc. ?
6.2.1. Quels noms de code ont déjà été utilisés ?
6.2.2. D'où proviennent les noms de code ?
6.3. Que dire de « sid » ?
6.4. Que contient le répertoire stable ?
6.5. Que contient la distribution testing ?
6.5.1. Que dire de « testing » ? Comment est-elle gelée (« frozen ») ?
6.6. Que contient la distribution unstable ?
6.7. Quels sont tous ces répertoires dans les archives FTP de Debian ?
6.8. Que sont tous ces répertoires dans dists/stable/main ?
6.9. Où trouve-t-on le code source ?
6.10. Que trouve-t-on dans le répertoire pool ?
6.11. Qu'est-ce que le répertoire incoming ?
6.12. Comment mettre en place son propre dépôt pour apt ?

6.1. Combien de distributions de Debian y a-t-il ?

Il y a trois distributions majeures : la distribution « stable », la distribution « testing » et la distribution « unstable ». La distribution « testing » est quelque fois gelée (« frozen ») (voyez Section 6.5.1, « Que dire de « testing » ? Comment est-elle gelée (« frozen ») ? »). À côté de celles-là, on trouve également la distribution « oldstable » (celle qui précédait la « stable ») ainsi que la distribution « experimental ».

Experimental est utilisée pour les paquets encore en cours de développement qui comportent des risques importants pour le fonctionnement de votre système. Elle est utilisée par les développeurs qui veulent étudier et tester les versions les plus récentes des logiciels. Les utilisateurs ne devraient pas utiliser ces paquets-là, car ils peuvent être dangereux et endommager les systèmes des utilisateurs même les plus expérimentés.

Consultez Chapitre 3, Choisir une distribution de Debian pour de l'aide sur le choix d'une distribution Debian.

6.2. À quoi correspondent tous les noms comme etch, lenny, etc. ?

Ce sont juste des noms de code. Quand une distribution Debian est en cours de développement, elle n'a aucun numéro de version mais un nom de code. Le but de ces noms de code est de faciliter la copie sur les miroirs des distributions Debian (si un véritable répertoire comme unstable est soudainement renommé en stable, beaucoup de choses devraient être inutilement téléchargées).

Actuellement, la version stable est un lien symbolique vers buster (c'est-à-dire Debian GNU/Linux 10) et la version testing est un lien symbolique vers bullseye. Ceci signifie que buster est la distribution « stable » actuelle et bullseye est la distribution « testing » actuelle.

Unstable est un lien symbolique permanent vers sid, car sid est toujours la distribution « unstable ».

6.2.1. Quels noms de code ont déjà été utilisés ?

À côté de buster et de bullseye, les noms de code qui ont déjà été employés sont : buzz pour la version 1.1, rex pour la version 1.2, bo pour les versions 1.3.x, hamm pour la version 2.0, slink pour la version 2.1, potato pour la version 2.2, woody pour la version 3.0, sarge pour la version 3.1, etch pour la version 4.0, lenny pour la version 5.0, squeeze pour la version 6.0, wheezy pour la version 7, jessie pour la version 8, stretch pour la version 9.

6.2.2. D'où proviennent les noms de code ?

Jusqu'ici les noms de code proviennent des personnages des films « Toy Story » par Pixar.

  • buzz (Debian 1.1) was the spaceman Buzz Lightyear,

  • rex (Debian 1.2) was the tyrannosaurus,

  • bo (Debian 1.3) was Bo Peep, the girl who took care of the sheep,

  • hamm (Debian 2.0) was the piggy bank,

  • slink (Debian 2.1) was Slinky Dog, the toy dog,

  • potato (Debian 2.2) was, of course, Mr. Potato,

  • woody (Debian 3.0) was the cowboy,

  • sarge (Debian 3.1) was the sergeant of the Green Plastic Army Men,

  • etch (Debian 4.0) was the toy whiteboard (Etch-a-Sketch),

  • lenny (Debian 5.0) was the toy binoculars,

  • squeeze (Debian 6) was the name of the three-eyed aliens,

  • wheezy (Debian 7) est le nom du manchot au nœud papillon rouge,

  • jessie (Debian 8) est l'écuyère,

  • stretch (Debian 9) est le nom de la pieuvre avec des ventouses sur ses tentacules.

  • buster (Debian 10) était le chien de compagnie d'Andy.

  • bullseye (Debian 11) était le cheval de bois de Woody.

  • bookworm (Debian 12) était un ver de terre vert équipé d'un flash et qui adore lire des livres.

  • sid est le garçon des voisins qui casse tous les jouets.

La décision d'utiliser des noms provenant de Toy Story a été prise par Bruce Perens qui était, à l'époque, responsable du projet Debian et travaillait chez Pixar, la société qui a produit les films.

6.3. Que dire de « sid » ?

Sid ou « unstable » est le lieu où la plupart des paquets sont initialement envoyés. Elle ne sera jamais directement publiée, parce que les paquets devront d'abord être inclus dans « testing », afin d'être publiés dans « stable » plus tard. Sid contient des paquets pour l'ensemble des architectures publiées ou non.

Le nom « sid » vient aussi du film d'animation Toy Story : Sid est le garçon des voisins qui détruit les jouets.

[2]

6.4. Que contient le répertoire stable ?

  • stable/main/ : Ce répertoire contient les paquets qui constituent la version la plus récente du système Debian GNU/Linux.

    Ces paquets sont tous conformes aux principes du logiciel libre selon Debian (Debian Free Software Guidelines, DFSG) et sont tous librement utilisables et librement distribuables.

  • stable/non-free/ : Ce répertoire contient les paquets de la distribution ayant certaines restrictions, ce qui oblige les distributeurs à tenir compte soigneusement des conditions définies dans les copyright.

    Par exemple, certains paquets ont une licence avec une clause interdisant une distribution commerciale. D'autres peuvent être redistribués mais sont en fait des partagiciels (shareware) et non pas des logiciels libres (free software). La licence de chaque paquet doit être étudiée et probablement négociée, avant qu'ils ne soient inclus dans toutes distributions (par exemple sur un CD-ROM).

  • stable/contrib/ : Ce répertoire contient les paquets qui sont conformes aux DFSG et librement distribuables, mais dépendent d'une façon ou d'une autre d'un paquet qui n'est pas librement distribuable et ainsi disponible seulement dans la section non-free.

6.5. Que contient la distribution testing ?

Les paquets sont installés dans le répertoire « testing » après qu'ils aient subi un certain nombre de tests dans « unstable ».

Ils doivent être synchronisés sur toutes les architectures où ils ont été construits et ne doivent pas avoir de dépendances qui empêcheraient leur installation ; ils doivent également avoir moins de bogues critiques que les versions actuellement dans unstable. De cette façon, nous espérons que « testing » soit une version toujours prête à la publication.

Plus d'informations sur l'état de « testing » en général et sur les différents paquets sont disponibles à https://www.debian.org/devel/testing.

6.5.1. Que dire de « testing » ? Comment est-elle gelée (« frozen ») ?

Quand la distribution « testing » est suffisamment mature, le responsable de la publication commence à la « geler ». Le temps de propagation des paquets entre les distributions est augmenté pour s'assurer que le moins possible de bogues passe de la distribution « unstable » dans « testing ».

Après un moment, la distribution « testing » devient vraiment gelée. Cela signifie que tous les nouveaux paquets qui devaient entrer dans « testing » sont bloqués, à moins qu'ils ne corrigent un bogue critique (release critical). La distribution « testing » peut également demeurer dans un gel profond pendant les cycles d'essai, quand la publication est imminente.

Lorsque la distribution « testing » est « gelée », « unstable » a tendance à geler également. En effet, les développeurs sont réticents à envoyer des logiciels complètement nouveaux dans l'archive : cela compliquerait le processus de correction dans le cas où un logiciel dans « testing » doit être corrigé, suite à un bogue mineur voire critique pour la publication.

Nous conservons un enregistrement des bogues de la distribution « testing » qui peuvent empêcher un paquet d'être publié, ou retarder la publication de la distribution. Pour plus de détails, veuillez-vous reporter aux informations sur la version testing actuelle.

Une fois que le nombre de bogues a atteint une valeur maximale acceptable, la distribution « testing » gelée est déclarée « stable » et publiée avec un numéro de version.

Le décompte de bogues le plus important est celui des bogues critiques pour la publication (« Release Critical »). Un objectif courant pour la publication est de réduire à zéro le nombre de bogues critiques, graves ou sérieux (NoRCBugs). La liste complète des problèmes considérés critiques est disponible dans le document de politique des bogues RC.

Avec chaque nouvelle version, l'ancienne distribution « stable » devient obsolète et est déplacée de l'archive. Pour plus d'informations, reportez-vous à l'archive Debian.

6.6. Que contient la distribution unstable ?

Le répertoire « unstable » contient une image du système en cours de développement. Les utilisateurs sont les bienvenus pour utiliser et tester ces paquets, mais soyez averti au sujet de leur état. L'avantage d'utiliser la distribution « unstable » est que votre système est toujours à jour avec la dernière version des logiciels GNU/Linux, mais s'il y a un problème, vous en découvrirez les mauvais côtés.

Il y a aussi dans « unstable » des sous-répertoires main, contrib et non-free remplis avec les mêmes critères que dans « stable ».

6.7. Quels sont tous ces répertoires dans les archives FTP de Debian ?

Le logiciel empaqueté pour Debian GNU/Linux est disponible dans un des nombreux répertoires présents sur chaque site miroir de Debian.

Le répertoire dists est une abréviation pour « distributions » et c'est la manière canonique pour accéder à la version (et pré-versions) de Debian actuellement disponible.

Le répertoire pool contient les paquets réels, voir Section 6.10, « Que trouve-t-on dans le répertoire pool ? ».

On trouve aussi les répertoires supplémentaires suivants :

/tools/ :

Utilitaire DOS pour la création de disque de démarrage, pour le partitionnement de votre disque, pour la compression et la décompression de fichiers et pour le démarrage de Linux.

/doc/ :

La documentation de base de Debian, comme cette FAQ, les instructions pour le système de rapport de bogues, etc.

/indices/ :

Différents fichiers d'index (comme le fichier Maintainers et les fichiers override).

/project/ :

Principalement des ressources pour les développeurs et divers fichiers.

6.8. Que sont tous ces répertoires dans dists/stable/main ?

Within each of the major directory trees[3], there are three sets of subdirectories containing index files.

Il y a un ensemble de sous-répertoires binary-quelquechose contenant les fichiers catalogues pour les paquets binaires de chaque architecture disponible. Par exemple, binary-i386 pour les paquets s'exécutant sur les machines Intel x86 ou binary-sparc pour les paquets s'exécutant sur les SPARCStations Sun.

La liste complète de toutes les architectures disponibles pour chaque version est accessible à l'adresse the release's web page. Pour la version en cours, veuillez-vous reporter à Section 4.1, « Sur quelle architecture matérielle fonctionne Debian GNU/Linux ? ».

Les fichiers catalogues dans les répertoires binary-* sont nommés Packages(.gz, .bz2) et fournissent un résumé de chaque paquet binaire présent dans la distribution. Les paquets binaires se trouvent à la racine du répertoire pool.

De plus, il y existe un sous-répertoire nommé source/ contenant les fichiers catalogues pour les paquets sources contenus dans la distribution. Le fichier catalogue est nommé Sources(.gz, .bz2).

Le dernier, mais non des moindres, est un ensemble de sous-répertoires utilisé pour les fichiers catalogues du système d'installation. Ils sont présents dans un répertoire debian-installer/binary-architecture.

6.9. Où trouve-t-on le code source ?

Le code source est inclus pour tout le système Debian. De plus, les termes de la licence de la plupart des programmes du système requièrent que le code source soit distribué avec le programme, ou qu'un moyen de récupérer ce code accompagne le programme.

Le code source est distribué dans le répertoire pool (voir Section 6.10, « Que trouve-t-on dans le répertoire pool ? ») avec les binaires de toutes les architectures. Pour récupérer le code source sans être familier avec la structure de l'archive FTP, exécutez une commande comme apt-get source monpaquet.

Suite à des restrictions de licence, le code source de paquets dans les sections « contrib » et « non-free » peut être disponible ou non, ils ne font pas partie formellement du système Debian. Dans certains cas, seuls les « binary blobs » sans code source peuvent être distribués (voir par exemple firmware-misc-nonfree) ; parfois la licence interdit la distribution de binaires précompilés mais elle autorise des paquets sources compilables par les utilisateurs sur leur machine (voir broadcom-sta-dkms).

6.10. Que trouve-t-on dans le répertoire pool ?

Les paquets sont gardés dans un répertoire commun (« pool »), structuré selon le nom des paquets sources. Pour rendre cela gérable, le répertoire est divisé par section (« main », « contrib » et « non-free ») et dans chaque section par la première lettre du nom des paquets sources. Ces répertoires contiennent plusieurs fichiers : les paquets binaires pour chaque architecture et les paquets sources à partir desquels sont construits les paquets binaires.

Vous pouvez voir où chaque paquet est conservé en exécutant la commande apt-cache showsrc monpaquet et en regardant la ligne « Directory: ». Par exemple, les paquets apache sont conservés dans pool/main/a/apache/.

De plus, comme il existe de nombreux paquets de bibliothèque lib*, ceux-ci sont traités différemment. Par exemple, le paquet libpaper est placé dans le répertoire pool/main/libp/libpaper/.

[4]

6.11. Qu'est-ce que le répertoire incoming ?

Après qu'un développeur a envoyé un paquet, il est conservé dans le répertoire « incoming » avant de vérifier son origine et de l'autoriser dans l'archive.

Généralement personne ne devrait installer des paquets provenant de ce répertoire. Cependant, dans certains rares cas d'urgence le répertoire « incoming » est disponible à https://incoming.debian.org/. Vous devrez télécharger manuellement les paquets, vérifier les signatures GPG et les sommes MD5 dans les fichiers .changes et .dsc et les installer ensuite.

6.12. Comment mettre en place son propre dépôt pour apt ?

Si vous avez construit quelques paquets Debian personnels que vous voudriez pouvoir installer en utilisant les outils de gestion de paquets de Debian, vous pouvez mettre en place votre propre archive de paquets pour apt. C'est également utile si vous voulez partager vos paquets Debian tant qu'ils ne sont pas distribués par le projet Debian. Les instructions de mise en œuvre sont données sur le Wiki Debian.



[2] When the present-day sid did not exist, the FTP site organization had one major flaw: there was an assumption that when an architecture is created in the current unstable, it will be released when that distribution becomes the new stable. For many architectures that isn't the case, with the result that those directories had to be moved at release time. This was impractical because the move would chew up lots of bandwidth.

The archive administrators worked around this problem for several years by placing binaries for unreleased architectures in a special directory called "sid". For those architectures not yet released, the first time they were released there was a link from the current stable to sid, and from then on they were created inside the unstable tree as normal. This layout was somewhat confusing to users.

With the advent of package pools (see Section 6.10, « Que trouve-t-on dans le répertoire pool ? »), binary packages began to be stored in a canonical location in the pool, regardless of the distribution, so releasing a distribution no longer causes large bandwidth consumption on the mirrors (there is, however, a lot of gradual bandwidth consumption throughout the development process).

[3] dists/stable/main, dists/stable/contrib, dists/stable/non-free, and dists/unstable/main/, etc.

[4] Historically, packages were kept in the subdirectory of dists corresponding to which distribution contained them. This turned out to cause various problems, such as large bandwidth consumption on mirrors when major changes were made. This was fixed with the introduction of the package pool.

The dists directories are still used for the index files used by programs like apt.