Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Diverses choses sur les packages managers

Posté par Spyhawk () le 09 mars 2008
Salut journal,

On parle assez souvent ici des packages managers (ou gestionnaires de paquets), pour la bien simple raison que c'est une partie centrale de l'OS, et qu'il est différent suivant la distribution utilisée. Les trolls s'en donne donc à coeur joie pour le plus grand plaisir des moules linusfriesques.

Cependant, on parle de quelques nouveautés, on parle des limites ou des problèmes rencontrés, on apt get à tout va pour descendre RPM ou vis-versa, on obtient parfois quelques petites infos intéressantes, mais on a jamais une vue globale de ce qui se passe dans le monde des packages managers.

C'est pourquoi je me suis mis en quête de m'informer par-ci par-là, d'appronfondir quelques sujets qui ont alléché mon navigateur oueb. Et c'est pourquoi, journal, je t'en fais profiter, en espérant en apprendre un peu plus de la part des lecteurs DLFP, qui me corrigeront sans doute, qui donneront quelques infos sur comment ça marche sur leur distrib préférée ou comment ça devrait marcher selon eux, et que trolleront à coeur joie pour le plus grand plaisir des moules.

J'aborderais donc toutes une panoplies de sujets, tous liés plus ou moins au package management, si hype dans le monde unix. J'aborderais quelques situations pratiques et nouveaux projets rencontrés via la distribution que j'utilise le plus, openSUSE, distribution relativement peu utilisé dans le monde francophone pour une foule de raison (concurrence historique de Mandrake, accord MS Novell, succès d'Ubuntu, souvenirs d'Alsace et Lorraine, ..). Cette distribution est néanmoins assez populaire en Europe du Nord, un peu de l'Est, en Italie, .. et en Allemagne, bien sûr (comme ça vous êtes prévenus :) )

Voici un rapide aperçu du contenu :
- évolution du package management
- création de paquets
- gestion des mirroirs
- unification des systèmes

Dans un autre journal, je me pencherai sur les algorithmes de résolution de dépendances. Cette partie étant relativement longue et très intéressante, j'en dédierai un journal complet.


Evolution du package management (ou le rpmdeb sapien sapien)
---------------------------------------------
Le package management sous Linux semble avoir évolué passablement au cours du temps, connaissant différentes évolutions que l'on peut qualifier de "générations"[1] :

Génération 0 - Pas de package management du tout. L'utilisateur place les fichiers individuels, là où il faut sur son système pour que ça marche.

Génération 1 - Les différents programmes sont empaquetés pour faciliter l'installation sur le système cible. L'utilisateur n'a qu'à extraire ou exécuter le paquet, mais il n'y a pas de vérification des dépendances.
S'il manque une librairie requise par le programme, il ne fonctionnera pas correctement. Exemples : La plupart des installateurs windows, de simples fichiers zip, les paquets slackware.

Génération 2 - Construite sur la génération 1, en ajoutant le support des dépendances/pré-requis. L'utilisateur connait ainsi ce qu'il doit installer avant de pouvoir installer son programme favori. Exemples : fichiers MSI, dpkg, rpm.

Génération 3 - Construite sur la génération 2, en ajoutant la résolution automatique des dépendances, à partir d'une sources de logiciels. Tous les paquets susceptibles d'être nécessaire à un programme sont directement disponibles. Exemple : apt, up2date, redcarpet, yum, urpmi, yast.

Cette génération 3 existe depuis un certains temps, et est largement utilisée dans presque toutes les distributions. Peut être est ce que le summum du package management est atteint... Peut être pas.
Cette 3e génération n'est pas sans défauts :

- Les "bonnes" sources du package manager doivent être configurés, parce qu'elles ne sont pas toujours activées par défaut, pour des raisons légales, à cause de la politique de la distribution, ou parce que le dernier logiciel top-moumoutte n'est pas dans les dépots officiels, mais directement sur le créateur du le-dit logiciel top-moumoutte. L'utilisateur devra donc chercher l'URL du dépot, trouver le fichier ou le programme dans son centre de contrôle pour ajouter ce dépot, puis enfin, pouvoir installer son logiciel. Beaucoup de chose pour un simple logiciel ? Pas pour les geeks de DLFP. Enfin, peut que si.

- L'utilisateur débutant doit apprendre à manier un front end pour son package manager, Le design de ceux-ci varie grandement, mais le premier réflexe de l'utilisateur windowsien reste sans appel : Il veut double clicker sur son fichier d'installation, et clicker sur "Suivant".

> One-Click-Install (OCI)

openSUSE (je vous avais prévenu :) ) a introduis la technologie "One-Click-Install" dans le courant 2007, rétroactivement pour la version 10.2 (sortie en décembre 06), et de base dans la dernière version 10.3 (octobre 07).
Un simple clic sur un lien web, et le package manager se lance et permet, après le mot de passe root, de cliquer sur "suivant" d'ajouter le dépot, le rafraichir, télécharger le logiciel et ses dependances, puis l'installer. A noter que OCI est le fruit d'un programmeur indépendant, et non des ingéneiurs de SuSE/Novell.

OCI porte mal son nom... puisqu'on est loin du simple clic pour l'installation d'un logiciel (4 ou 5 mini, plus le mot de passe root). Et encore heureux. En effet, le vice de cette facilité d'ajouter des dépôts et packages est.. sa facilité, justement. Facile d'ajouter un malware verreux en modifiant un simple lien sur le wiki officiel, par exemple. Le problème de la sécurité des dépôts apparaît, ou du moins, il devient plus dangereux pour un utilisateur non expérimenté d'être la victime d'une éventuelle "attaque".

Si le problème ne s'est pas (encore) présenté, c'est sans doute grâce à plusieurs facteurs :
- Le dépot doit être validé par un clé GPG. Je doute que ce soit suffisant pour éviter qu'un débutant n'installe n'importe quoi.
- Un changement sur le wiki openSUSE ne passerait pas inaperçu, et serait corrigé de suite.
- La "websphère" de la distribution est assez limitée: très peu de dépôts sont situés en dehors du Build Service openSUSE (uniquement ceux qui ne peuvent y être pour raison légale - VideoLan, Packman, .. d'autres?), le blog des développeurs planetsuse.org. La plupart des liens OCI sont "sous contrôle".

Mais c'est insuffisant. Des solutions pour "sécuriser" le système (ou le comportement chaise/clavier, plutôt) sont étudiées. Un système de confiance donné par vote (trust rating) sera donné à chaque dépot du BuildService openSUSE. C'est un premier pas, même si je ne suis personnelement pas convaincu de l'efficacité du système.

> Mon expérience :

En quelques semaines, l'environnement openSUSE change : Les liens 1-click-install profusionnent sur le wiki, l'aide sur les canaux IRC est transformé : un simple !command et le bot IRC crache le bon lien pour installer le tout dernier compiz-fusion-gl-etreme-mod-crystal-top-moumoutte. Le package manager devient beaucoup plus transparent, plus invisible à l'utilisateur final. Les débutants sont comblés. Et les habitués aussi.
Les bénéfices, pour une distribution grand public sont conséquent et je pense que cette pratique sera étendue à la plupart des distributions.

La technologie OCI continue d'évoluer, avec des variantes en consoles, des interfaces graphiques pour créer des lien OCI, la génération automatique des ces liens à partir d'une liste prédéfinie, l'utilisation généralisé dans les moteurs de recherche de paquets openSUSE [3][4] et dans le futur Software Portail Communautaire [5].

Création de paquets (ou comment emballer le chocolat dans le papier d'alu)
--------------------------
Un autre sujet récurrent dans les journaux des moules est la création de package. En effet, s'il existe différents formats (deb, rpm, tgz, .. ), un même format est souvent incompatible entre distributions, et les paquets d'une version d'une distribution est plus ou moins incompatible avec la version suivante ou antérieure.

Cette situation conduit le créateur d'un programme, qui désire diffuser son travail, à différentes options :
- trouver et faire appel à un packager pour chacune des distributions. Avec bien sur aucune assurance sur l'efficacité et le suivi de celui-ci sur son projet et ses mises à jour.
- créer lui-même moultes versions de son programme top-moumoutte, une pour chaque distribution (du moins les principales). Outre le fait qu'il devra se familiariser avec les différentes procédures deb, rpm, archbuild, et autres, il devra tenir ces paquets à jour avec les toutes nouvelles versions de son programmes.
- ne rien faire, et laisser les sources de son programme en tar.gz sur son site oueb. Peut être pas la meilleure solution pour faire connaître son top moumoute de programme ré-vo-lu-tionaire.

> les solutions décentralisées

Une solution originale qui a émergée sont les package manager décentralisés, qui permettent de creer un seul et unique paquet qui s'installera sur chaque distribution. Un article général présentant bien le concept, écrit par l'auteur de ZeroInstall l'année passée, et avec tout plein de beau schéma est disponible ici [6].

L'article pointe du doigt les effets "pervers" du cloisonnement du système de chaque distribution, et les défis rencontrés par les packages manager décentralisés. Il est relativement technique, mais très intéressant pour qui veux comprendre le fonctionnement de klik, autopackage et autre ZeroInstall.

Concrètement, le principe utilisé est similaire à la manière windowsienne de procédé : Après l'installation d'un client, on peut télécharger des paquets indépendants (comme un exe) ou un fichier pointant vers des repo online (à la manière OCI présentée ci-dessus). On clique et le paquet s'installe (télécharge et installe les dépendances) avec ses librairies statistiquement liés dans /home. Certains vont plus loin, en utilisant les librairies dynamiques du système si elles sont détectées sur le système cible, ou essai même d'intéragir avec le package manager en place pour éviter les doublons de programmes.

Les inconvénients de cette méthode sont bien sur ces librairies statiques, à contre courant du principe meme du package management, la non utilisation de dépots centralisés si pratique, et cette impression d'installer (ou ne pas installer justement) un paquet non géré par ce bon vieux package manager. Mais force est de constater qu'il y a des progrès et que la marge de progression est grande.

> openSUSE Build Service (oBS)

L'openSUSE Build Service[7], lui, reste dans la philosophie traditionnel des systèmes centralisé. Son utilisation primaire est de fournir une grande variétés de paquets pour les distributions openSUSE, des nouvelles versions de paquets de divers projets (KDE4, ..), des paquets "third-party" et des backports pour les différentes versions stables de la distribution. Il est assez similaire au système de build public de Fedora.

L'infrastructure permet ainsi de compiler les paquets à distance, dans une machine virtuelle Xen lancé par le packager via une interface web ou un client en ligne de commande. Toute l'infrastructure du Build Service tourne sur plus d'une centaine de machines généreusement données par AMD au projet openSUSE, et le code du Build Service est disponible librement. A noter que la version de développement openSUSE est désormais construite dans le Build Server.

Là où c'est intéressant pour un packager, c'est que le Build Service permet, simplement à tout un chacun, de créer des paquets pour différentes distributions, à partir d'un unique fichier de configuration (.spec file). La gestion des doits est bien sûr gérée, de sorte que plusieurs personnes peuvent s'occuper d'un certain projet.

Le Build Service a de multiples avantages :
- Il resoud automatiquement les dépendances des paquets compilés. Ainsi, si un paquet B dépend d'un autre paquet A, le paquet B va être automatiquement recompilé si la dépendance A est modifiée et recompilée. On a ainsi l'assurance que ce paquet va bel et bien être compatible avec une certaine version d'une distribution.
- Il permet de lier des projets entre eux. Ainsi, un patch peut être avec la nouvelle version d'un autre projet. Un développeur qui créer un patch pour Amarok dans son environnement local (compte du build service) peut le tester dans un environnement différent que le sien. En liant son amarok patché au projet KDE, il a l'assurance que sa version patchée d'amarok sera recompilé lorsque le projet KDE sera recompilé.
- Il permet de compiler pour de multiple distributions, à partir d'un seul fichier de configuration (.spec). Actuellement, les distributions supportées sont SUSE Enterprise et openSUSE (10.1, 10.2, 10.3, Factory, SLE 9 et 10), Fedora (6, 7, 8) et RH Enterprise (RHE 5, Centos 5), Mandriva (2006, 2007 et 2008), Debian etch et xUbuntu (6.04, 7.04, 7.10).
- Enfin, le build service est synchronisé sur plusieurs miroirs, la disponibilité des paquets est garantie en tous temps.

Le système n'est pas parfait, parfois les paquets ne compilent pas (des outils de monitoring via l'interface sont là pour aider à déterminer ce qui ne va pas et ce qui doit être changé dans le fichier .spec du paquet), et toutes les distribtions ne sont pas prises en compte, mais c'est un premier pas vers un système de build qui n'est pas entièrement spécifique à une distribution.

Un utilisateur Fedora a testé l'infrastructure oBS l'année passée, vous pouvez lire son retour d'expérience ici [8]

> Mon expérience

Ben j'suis une daube en packaging, mais c'est pas le sujet :).L'interface est agréable et intuitive, et quelques changement sont prévu prochainement pour encore l'améliorer. Le client CLI semble efficace, mais j'ai pas vraiment poussé plus loin. A voir pour les packagers en herbe...
Quelques statistiques au passage :

A la semaine du 5 mars, le Build Service contenait 2035 (+50 par rapport à la semaine précédente) projets, 34531 (+145) packages, 4751 (+122) dépôts par 4575 (+129) utilisateurs confirmés.

Il faut bien sur modérer le nombre de paquets, puisque il y a plusieurs architectures, pour plusieurs distributions, et que parfois un seul paquet sources peut produire plusieurs paquets binaires.


Gestion des mirroirs (ou savoir qui est le plus beau)
------------------------

Il y a une chose qui m'a toujours déça lorsque j'utilisais mon package manager finement configuré : Le mirroir que j'avais entré était momentanément mort, et précisément à l'instant où j'en avais crucialement besoin :)
La parade consistait donc
- à chercher sur le wiki la liste des miroirs officiels
- à entrer auparavant plusieurs miroirs pour chaque source, fonctionnalité prise en charge par bon nombre de package managers.

Il faut donc contourner le problème d'indisponibilité momentanée, du coté client. Et pourquoi pas côté serveur ?

Voyons ce que contient les serveurs openSUSE[9] :
distribution openSUSE 10.1, 10.2, 10.3, snapshots unstable (alpha et beta)
3 architectures, les sources, les paquets debuginfos, les branches de test, les branches drpmsync, et bien sûr, les dépots du Build Service.

Combien cela répresente-il ?
- Plus de 700'000 fichiers dans la branche openSUSE :

/distribution: 289794
/update: 14896 (seulement 10.3)
/repositories: 413142

Taille totale : 864 Go (état début mars), 15'000'000 à 40'000'000 de requêtes HTTP par jour.

Une sacrée charge. Existe-t-il un serveur avec une telle capacité ?
En comparaison, un mirroir ubuntu entier (incluant ISO) pèse ~ 260Go, debian (sans ISO) pèse ~320Go (le nombre de requêtes journalière doit être bien plus élevée cependant)

Et c'est là que les mirroirs viennent à la rescousse.
Est-ce que tous les mirroirs openSUSE sont égaux ? Dans le temps pré-Novell, oui. Il n'y avait pas autant de paquets disponibles pour la distribution. Mais depuis l'ouverture de la distribution, chaque mirroir n'a pas forcément le même contenu que son voisin (limitations de capacité).
Effectivement, avec la taille nécessaire pour acceuillir le contenu total des FTPs, il n'y a _plus_ de mirroirs complets.
Certains ne mettent à disposition que la dernière release (10.3), d'autres seuelement les repos du Build Service. D'autres ne sont peut être pas encore à jour avec les tous derniers builds.
Seuls quelques fous mettre à disposition l'ensemble du contenu (800+Go), mais les dev ont déjà du mal à trouver un mirroir pour le BuildService (+200Go). Sans compter que ce contenu change très souvent, à tel point que parfois, lorsqu'une synchronisation de tous les serveurs est terminée, le contenu à déjà changé sur les serveurs principaux !

Comment donc utiliser les mirroirs, si l'état de ceux-ci changent continuellement de complet et à jour, à incomplets et pas à jour ?

> openSUSE download redirector : mod_zrkadlo

Une solution proposée est de créer de listes dynamiques du contenu de chaque mirroir. Si on ne peut pas contrôler le contenu des mirroirs, on peut en revanche les observer.

Le choix d'un miroir est avant tout déterminé par localisation de l'IP (GeoIP), puis les choix potentiels sont analysés : le redirecteur est lié à une base de donnée SQL qui connait le contenu exact de chacun des mirroirs. Cette base de donnée est actualisée périodiquement par un scanner qui analyse tous les miroirs, et de plus un programme "ping" contrôle la réactivité du mirroir par intermittence, et peut ainsi désactiver ou mettre en pause la redirection vers un certain mirroir. Tout ca est implémenté de façon générique dans un module apache écrit en C, mod_zrkadlo[11]. Pour la petite histoire, le développeur de ce module a assister à un concert en Slovaquie d'un groupe nommé "Za Zrkadlom - behind the mirror", zrkadlo signifiant "mirroir", et il lui fallait un nom :)

Le désavantage de ce système de gestion de miroir, est qu'il doit être d'une fiabilité aboslue. Une panne du redirecteur, et c'est tout le système qui chute... Le recours manuel à la liste officielle des miroirs étant l'unique solution si le client n'implémente pas une liste de miroirs en cache (le client natif zypp n'inclut pas encore ça, mais c'est prévu). Sinon, outre la souplesse que ce système procure, il est possible de compter les téléchargements d'une manière relativement fiable.

Notons que des systèmes à peu près similaires existent déjà, et ont servi de modèles pour ce module : sourceforge, boucer (mozilla) qui est implémentée en php, Fedora MirrorManager qui est très similaire avec une approche un peu différente (évolution d'une liste statique à une liste prégénérée), qui est implémentée avec moins de granularité mais qui dispose d'une liste de secours en cas de problème, et mod_offload (icculus.org)

> Mon expérience

Ca marche au poil, même les jours de release on tombe sur un serveur rapide. Par contre, quand le RAID qui supporte le redirecteur lâche (comme à la mi-février), c'est 24h sans possibilité de faire quoique ce soit, à part utiliser manuellement un miroir qui va bien.. Pas top pour les débutants, espérons que le fallback système soit implémenté rapidement.


Unification des packages management (ou comment on les clonera tous)
-----------------------------------

Je suis tombé l'autre jour sur un blog qui m'a fait un peu sourire[12].
L'auteur proposais d'unifier les meta-packages manager (apt, yum, urpmi) au travers d'un nouveau système UPS, Unified Package Manager.
Pour unifier .deb et .rpm, l'auteur propose une nouvelle spécification UPS (Unified Package System) qui conviendrait à tous le monde, et de creer UPS, Unified Package Format.

Si l'attention est louable et que l'auteur propose une démarche pour développer ce nouveau format, je doute un peu du succès que pourrait avoir l'abandon de deb et rpm tant ils sont populaires. Cependant, si l'unification des formats ne semble pas réaliste, celui de l'unification des front-end est une voie à explorer.

> Smart PM

Smart[13] est un premier essai, développé par l'ex-mainteneur d'apt4rpm chez Connectiva (et qui travaille chez Ubuntu actuellement je crois). Smart peut être utilisé sur n'importe quel système, puisqu'il reconnait les différents dépots RPM (apt4rpm, rpm-md, red carpet, urpm, ..), deb, slackware. Si son algorithme semble un peu plus évolué et puissant que ce qui existe actuellement (je reviendrai la dessus dans un prochain journal), je n'ai pas l'impression qu'il est arrivé à détroner le package manager d'une distribution ou d'une autre, peut être à cause de son efficacité un peu trop "aggressive" (je me rappelle avoir eu pas mal de souci lors d'un dist-upgrade).

> PackageKit

Au contraire de Smart, PackageKit[14] n'est qu'une interface qui n'essai pas de réinventer la roue. Son but premier est d'unifier toutes les interfaces graphiques utilisées dans les différentes distributions, et d'utiliser les dernieres technologies pour que le processus "suck less".
Ce logiciel met a disposition une série d'abstraction D-BUS qui repose sur les différentes technologies des meta-packagers existants, et utilise ceux-ci pour la résolution des dépendances. Avec PoliceKit, il permet à l'utilisateur d'une session de manager ses paquets de façon sécurisé, grâce à une API cross distribution et cross-architecture. L'etat actuel de l'implémentation des différents backend est visible dans ce tableau[15]

PackageKit n'est pas sponsorisé, mais le projet semble intéresser Red Hat, openSUSE et surement quelques autres. Un avenir prometteur ?

Ainsi journal, je te laisse méditer sur ce (trop) long journal, et te donne rendez vous pour le prochain, qui traitera de façon pas trop superficielle les algorithmes de résolution des dépendances, les limites actuelles et peut être quelques solutions prometteuses.

Sources et info :
---------------------
[1] http://blogs.warwick.ac.uk/bweber/entry/next_generation_pack(...)
[2] http://en.opensuse.org/Meta_Packages
[3] http://software.opensuse.org/search?baseproject=openSUSE:10.(...)
[4] http://packages.opensuse-community.org/
[5] http://en.opensuse.org/Software_Portal
[6] http://osnews.com/story/16956/Decentralised-Installation-Sys(...)
[7] http://en.opensuse.org/Build_Service
[8] http://liquidat.wordpress.com/2007/07/06/using-the-opensuse-(...)
[9] http://www.poeml.de/~poeml/talks/redirector/
[10] http://en.opensuse.org/Build_Service/Redirector
[11] http://www.zrkadlo.org
[12] http://computerstuff.jdarx.info/content/unified-package-mana(...)
[13] http://labix.org/smart
[14] http://www.packagekit.org/
[15] http://www.packagekit.org/pk-faq.html

> Lire le journal (57 commentaires, moyenne: 3,1).  

Vous avez demandé le commentaire #912263.

openSuse vs debian

Posté par Matthieu Lagouge (Jabber id, page perso, ) le 09/03/2008 à 18:02. (lien). Évalué à 7.

Je pose juste une petite question qui je l'espère va dégénérer d'abord en troll avant d'atteindre le point Godwin en fin de semaine mais dont je veux juste une vraie réponse rapide avant que le rapport signal à bruit devienne ridicule:

Un miroir Suse c'est plus de 800Go de données avec ~3.5 versions (3 Suse + exp) + Build pour plusieurs architectures.

Mais les autres distribs aussi, elles ont plusieurs architectures et plusieurs versions.
Debian (par EXEMPLE) tourne sur plus d'architectures, a 3 versions + experimental, et j'ai toujours cru que Debian avait plus de paquets que les autres.

Suse proposerait-elle tellement plus de logiciels dans ses versions officielles??

Et sinon, rien à voir, mais y'a pas un patrick_g dans ta famille?? (rapport à la qualité du journal)

  • [^]Re: openSuse vs debian

    Posté par Spyhawk () le 09/03/2008 à 18:52. (lien). Évalué à 6.

    Je ne saurais répondre (le 320 Go est indiqué tel quel dans ma source), un debianniste sera mieux placé que moi.

    Mais rien que l'arbre FTP d'une seule version openSUSE et pour une architecture doit tourner autour des 15 à 20 Go si mes souvenirs sont bons.

    Le BuildService (/repositories) contient des mises à jours semi-officielles pour plein de composants (KDE3 et 4, GNOME, Xorg, drivers, etc.) mais surtout, la grosse partie du contenu est faite des builds personnels des utilisateurs (/repositories/home:). Des paquets peuvent donc y être sous différentes formes et versions (genre un blender 2.43, 2.44, avec tel ou tel patch, etc.)

    En ce qui concerne le nombre de package, je sais qu'avant l'ère Novell la distribution entière tenait sur un DVD double (pour une arch). Depuis, le nombre de paquets a complètement explosé. Selon la mailing-list de septembre 07 [1], le nombre de paquets sources était de ~3500+ dans le Build service (sans compter le /repositories/home:), et ~2500+ dans le repo communautaire packman (pour ~14'000 binaires)

    Sinon, je crois que Gentoo est passé devant debian depuis un moment en terme de nombre de paquets différents absolu.

    Et non, il n'y a pas de patrick_g dans ma famille. La preuve est qu'il y a un gros gène de monstrueuses fautes d'ortho dans la mienne...

    [1] http://lists.opensuse.org/opensuse-project/2007-09/msg00074.(...)

    --
    "I wonder where I'll go now. The net is vast and infinite."
    • [^]Re: openSuse vs debian

      Posté par Jean Boussier () le 09/03/2008 à 22:51. (lien). Évalué à 3.

      Je n'ai as trouvé de chiffre sur la taille des dépots Debian mais...

      Il y a 24cds pour une testing i386.

      Si on multiplie par 14 architectures fois 3 branches.

      Ben ça fait 823Go (plus l'expérimental dont je n'ai aucune idée de la taille)

      • [^]Re: openSuse vs debian

        Posté par Oook () le 10/03/2008 à 19:04. (lien). Évalué à 2.

        En même temps, je pense pas que tous les paquets soient dispo pour toutes les architectures.

        Genre, (au hasard sans vérification hein ;) ) : Open Office sur arm, je pense pas que ce soit possible (ni même souhaitable...).

        • [^]Re: openSuse vs debian

          Posté par Jean Boussier () le 10/03/2008 à 22:21. (lien). Évalué à 2.

          Raté : http://packages.debian.org/sarge/openoffice.org

          Try again?

          Sans rire oui il doit bien avoir quelques paquets non dispo sur toutes les archis à commencer par les non-free.

          Mais en même temps je ne cherche pas spécialement à savoir qui a la plus grosse. Je voulais juste par curiosité faire une estimation de la taille des dépôts.

          Ça pourrait d'ailleurs faire un excellent troll ...

      [^]Re: openSuse vs debian

      Posté par Matthieu Lagouge (Jabber id, page perso, ) le 10/03/2008 à 19:50. (lien). Évalué à 1.

      Bon, effectivement, et comme on dit voir, c'est croire:

      http://www.debian.org/mirror/size (Debian 290Go)
      http://wiki.mandriva.com/en/Development/Howto/Mirror (Mandriva 700Go)
      http://fedoraproject.org/wiki/Infrastructure/Mirroring (Fedora 663Go -très précis!-)
      http://www.netbsd.org/docs/mirror.html#ftp-diskspace (NetBSD 256Go au total)
      http://www.freebsd.org/doc/en_US.ISO8859-1/articles/hubs/mir(...) (FreeBSD environ 420Go au total)

      J'en tombe des nues tellement que j'ai vécu des années convaincu que Debian était "la plus grosse" avec plein d'architectures et des milliers de contributeurs!
      Comme quoi!
      (bon ceci dit j'en changerai pas pour ça hein!)

      Enfin, juste une question subsidiaire aux utilisateurs de fedora, suse, mandriva & co.:
      Dans Debian, il y a un certain nombre de paquets communs à plusieurs archis (aucune idée du volume en en Go). C'est pareil chez vous?

      • [^]Re: openSuse vs debian

        Posté par imalip (page perso, ) le 10/03/2008 à 21:08. (lien). Évalué à 5.

        j'ai vécu des années convaincu que Debian était "la plus grosse" avec plein d'architectures et des milliers de contributeurs!
        Le miroir Mandriva contient toutes les releases depuis la 7.1 (ca en fait 11) avec les iso, forcement, ca monte vite.
        Meme ordre d'idee pour NetBSD et FreeBSD.
        Fedora contient egalement les iso, et il semblerait que les 663 Go soient en comptant toutes les releases, vu qu'ils annoncent une augmentation de 100Go par release.

        Un miroir Debian contient par comparaison sarge, etch, lenny, sid et experimental, environ 2Go de donnees qui ne sont pas des paquets, et pas d'isos du tout. Et Lenny et Sid ont beaucoup de packages en commun

        --
        "While a monkey can be a manager, it takes a human to be an engineer" Erik Zapletal
        • [^]Re: openSuse vs debian

          Posté par IsNotGood () le 10/03/2008 à 22:12. (lien). Évalué à 3.

          > Fedora contient egalement les iso, et il semblerait que les 663 Go soient en comptant toutes les releases, vu qu'ils annoncent une augmentation de 100Go par release.

          Non, ce n'est pas en comptant toutes les releases. Sur fr2.rpmfind.net, Fedora (rawhide + F7 + F8 + mise à jour) c'est 480 Go. Par contre fr2.rpmfind.net n'a les debuginfo que pour Rawhide. D'où probablement le fait que fr2.rpmfind.net ne fait pas 660 Go.
          La GPL impose la disponibilité sur 3 ans des sources. Red Hat archive toutes les release sur un serveur (je ne sais plus où).
          Serveur principale Fedora :
          http://download.fedora.redhat.com/pub/fedora/linux/releases/
          Il n'y a que F7 et F8 (qui sont les distributions actuellement maintenues).

        [^]Re: openSuse vs debian

        Posté par IsNotGood () le 10/03/2008 à 22:06. (lien). Évalué à 3.

        > Dans Debian, il y a un certain nombre de paquets communs à plusieurs archis (aucune idée du volume en en Go). C'est pareil chez vous?

        C'est le cas pour la grande grande grande majorité des paquets de Fedora. Les exceptions sont rarissimes (genre IcedTea qui ne tournait pas sur ppc).

        • [^]Re: openSuse vs debian

          Posté par Nicolas Schoonbroodt (Jabber id, page perso, ) le 10/03/2008 à 22:16. (lien). Évalué à 4.

          Je pense que tu veux dire qu'il existe des paquets de wesnoth (par exemple) pour x86, ppc, ... sur fédora. Mais (je pense) que ce sont des paquets différents (wesnoth-x86, wesnoth-ppc, ...). Sur debian, il y a un (petit) paquet contenant les binaires, différent pour chaque archi (wesnoth-bin-x86, wesnoth-bin-ppc,...) et un gros paquet de données (les différentes campagne) commun à toutes les archis (wesnoth-data). Du coup, au lieu d'avoir 2*(binaires+data), il y a (2*binaires)+data sur le miroir.

          Si c'est comme ça sur fédora, toutes mes excuses, mais ça ne transpirait pas de ton message.

          --
          [ Répondre ] Ce commentaire est-il impertinent ou utile ?
          • [^]Re: openSuse vs debian

            Posté par IsNotGood () le 10/03/2008 à 23:33. (lien). Évalué à 2.

            > (wesnoth-bin-x86, wesnoth-bin-ppc,...)

            Pour Fedora, ça utilise les caractéristiques de rpm. wesnoth-1.2.8-2.fc8.i386.rpm, wesnoth-1.2.8-2.fc8.x86_64.rpm, etc.

            Spécifiquement pour wesnoth il n'y a pas de wesnoth-data (le paquet n'a pas été fait ainsi, faut pas chercher midi à 14 h dans cet exemple).
            Ici encore Fedora utilise les caractéristique de rpm (le champ ARCH).
            Par exemple pour le noyau :
            source : (généralement le même pour tout le monde)
            kernel-2.6.24.3-12.fc8.src.rpm <= le même pour tout le monde

            sur dépôt i386 :
            kernel-2.6.24.3-12.fc8.i586.rpm
            kernel-2.6.24.3-12.fc8.i686.rpm
            ...
            kernel-doc-2.6.24.3-12.fc8.noarch.rpm <= le même pour tout le monde (hardlink)

            sur dépôt x86_64 :
            kernel-2.6.24.3-12.fc8.x86_64.rpm
            ...
            kernel-doc-2.6.24.3-12.fc8.noarch.rpm <= le même pour tout le monde (hardlink)


            Il n'y a pas de distinct "data" ou "programme", mais la distinction architecture indépendant (noarch).

            Ainsi yum est le même pour tout le monde (aussi bien source que programme) :
            source :
            yum-3.2.8-2.fc8.src.rpm

            sur dépôt i386 :
            yum-3.2.8-2.fc8.noarch.rpm

            sur dépôt x86_64 :
            yum-3.2.8-2.fc8.noarch.rpm

            Ce sont bien les mêmes, le md5sum peut le confirmer.
            Mais on peut avoir des trucs surprenants. Par exemple toutes les traductions OOo sont architectures dépendants... Faut voir ça comme un bug upstream.


            Un parquet n'est pas construit d'un coup. Par exemple pour kernel (Linux) il est contruit avec --target noarch (ce qui va être généré sera le même pour tout le monde), puis --target i586, puis --target i686, puis --target x86_68, etc...