Sga64
Hello world !
Ma question va peut-être paraître un peu bête, et je me doute bien que la réponse a dû être répétée des centaines de fois, mais je suis sous Linux depuis un petit bout de temps maintenant, et je me demande toujours comment sont remplis les dépôts des différentes distributions (j'ai essayé Ubuntu et Fedora).
J'imagine que ce sont les communautés de ces distributions qui compilent, créent des paquets et les envoient sur les serveurs correspondants, mais vu le nombre de paquets qu'ils contiennent, suivre toutes les mises à jour me semble assez dur...
Ou alors, ce sont les développeurs qui mettent eux-mêmes leurs logiciels à disposition dans les dépôts des distributions, mais ça ne me paraît pas très réaliste, et ça représenterai aussi un gros travail pour le développeur (surtout quand il a en plus à gérer des versions Windows et OS X).
J'ai cru comprendre qu'une équipe d'utilisateurs remplissait ce rôle, mais encore une fois, je ne vois pas vraiment comment ils pourraient suivre les mises à jour de milliers de paquets sans être rapidement débordés.
remi
Les dépôts sont alimentés, en sortie du système de construction (koji) et du gestionnaire de mise à jour (bodhi) par les paquets maintenus par quelques centaines de contributeurs.
Et pour info, de mémoire, il doit y avoir actuellement ~12000 paquets dans Fedora.
Et oui, cela représente un boulot considérable.
Certain mainteneurs de paquet n'en gèrent que quelque uns, d'autres plusieurs centaines (mais ils sont rares)
Sga64
Ok, j'ai compris le principe, mais qu'est-ce que tu appelles "système de construction" et "gestionnaire de mise à jour" ? Des équipes chargées de compiler les programmes ?
pingou
En fait quand tu construis un paquet que ce soit rpm ou deb, le mainteneur du paquet construit dans un ou plusieurs fichiers text les instructions pour compiler et installer le logiciel.
Dans le cas de rpm, c'est un simple fichier text qui s'appelle un fichier spec.
Après, tu as différentes politique pour la construction des paquets en fonction des distributions.
Dans le cas de Fedora, le mainteneur du paquet, met sur un serveur les sources (donc le code source du projet) tel que le développeur principale a fournit et avec ces sources il donne le fichier spec (les instructions sur comment compiler ses sources).
Ensuite (toujours pour Fedora), il lance la construction du paquet en tant que tel. Pour cela il utilise koji, le "système de construction" qui en fait compile le rpm en suivant les instructions du fichier spec et en utilisant les sources fournit.
Cette compilation remplie un certain nombre de critères de façons à ce qu'on soit sûr qu'il n'y ai pas de dépendance manquante ou perturbatrice.
Une fois que le rpm est construit, le mainteneur peut choisir d'en faire une mise à jour, c'est alors qu'il utilise bodhi.
Bodhi va dire "cette compilation là est bonne et doit devenir une mise à jour". Le paquet est alors "poussé" dans le dépôts 'updates-testing' où il reste un certain temps pour qu'on s'assure que tout marche correctement puis il passe dans le dépôt 'updates' où tout le monde y a accès.
De fait tout le monde a aussi accès à 'updates-testing' mais ce dépôts n'est pas activé par défaut car il a parfois des logiciels qui ne marchent pas forcément très bien, alors que le dépôts 'updates' est activé par défaut puisque normalement tous les rpm qui sont dedans ont été plus ou moins testé.