Les applications peuvent se diviser en plusieurs catégories.
Nous distinguons :
A = Les applications finales. Exemples :
OOo, firefox, Gimp, apache
B = Les applications dont dépendent celles de A. Exemples :
gtk, libpng, Java, python
C = Les applications dont celles de A peuvent dépendre, mais d'une façon moins forte, ou qui sont relativement importantes pour le système. Exemples :
make, tar, grep
D = Les applications critiques. Exemples :
le noyau, libc, grub, bash, xorg (qui selon les cas peut se retrouver en B)
----------------
À partir de cette analyse nous pouvons faire quelques remarques.
* Dans l'idéal, les applications de A peuvent être mises à jour dès qu'il y a une nouvelle version stable en amont.
La possibilité d'avoir plusieurs branches (exemple apache 2.0.X, apache 1.3.X), est un plus considérable, et permet de laisser une grande partie de la maintenance aux développeurs amont, la distribution se contentant de packager.
* Une nouvelle version d'une application de A peut nécessiter une mise à jour d'une de B. Ce qui peut entraîner des recompilations de A, ou en tout cas de nouveaux tests à effectuer.
Ce sujet sera traité en profondeur dans une prochaine étude (certaines techniques permettent de remédier en parti au problème). On peut déjà conseiller aux intéressés la lecture de [1], [2] et [4].
* Les mises à jour de B et C doivent se faire au cas par cas, et sous certaines conditions.
* Un type d'application peut se retrouver dans plusieurs ensemble à la fois.
Prenons par exemple un gestionnaire de bureau (KDE ou Gnome). Une distribution peut décider, afin de satisfaire l'utilisateur, de choisir KDE comme bureau par défaut, de le placer en C, et tous les autres environnement de bureau en A. L'utilisateur choisira alors s'il veut la stabilité ou les dernières avancées.
* D'une façon général, il est difficile de faire une partition des applications.
Les liens [3] et [5] (surtout [3]), sont en rapport.
[1] http://www.dragonflybsd.org/docs/goals.shtml#packages
[2] http://www.pkgjam.org/
[3] http://www.modeemi.fi/~tuomov/b/archives/2007/03/03/T19_15_2(...)
[4] http://wiki.rpath.com/wiki/Conary
[5] http://beranger.org/index.php?page=diary&2007/10/25/13/2(...)
# Zero Install
Posté par Nerdiland de Fesseps . Évalué à 2.
Je radote, mais ça me fait penser à Zero Install ( http://0install.net ), qui plus ou moins s'occupe de A et B, laissant le système s'occuper de C et D. Ça permet de s'abstraire véritablement du système de base.
# pkgsrc a 10 ans
Posté par 태 (site web personnel) . Évalué à 2.
http://www.netbsd.org/docs/pkgsrc/ Hé oui, il est déjà possible d'avoir une distribution qui s'occupe du système (debian, netbsd, macosx...) et d'installer par dessus la couche de paquets logiciels utiles (pkgsrc). Et donc, le "nouveau" modèle de développement a 10 ans.
Pour ce qui est de la partition, bash est pour moi une application finale. Elle fait aussi partie de C. Les environnements de bureau sont de mon point de vue des sortes de framework, et donc devraient plutôt être en B (distinguer gnome de libgnome ou kde de kdelibs n'a pas grand sens vu leurs corrélations). La distinction que tu fais est en fait entre le système (D), et les build_dependencies que l'on peut désinstaller une fois le programme voulu installé (C), runtime_dependencies (inclus dans B : python, jre) et library_dependencies (inclus dans B : libpng, ...). Cette distinction est faite dans un certain nombre de gestionnaires de paquets (pkgsrc, macports, probablement les autres).
Et pour les intéressés, http://www.netbsd.org/gallery/10years.html
# Gniarf Linux Project
Posté par Anonyme . Évalué à 3.
[^] # Re: Gniarf Linux Project
Posté par BAud (site web personnel) . Évalué à 3.
[^] # Re: Gniarf Linux Project
Posté par ciol . Évalué à 1.
[^] # Re: Gniarf Linux Project
Posté par BAud (site web personnel) . Évalué à 3.
bon, bin, fais un blog plutôt que de polluer toutes les ML que tu trouves et autres newsgroups :-)
ah et quand tu reviens sur #gcu n'oublie pas de montrer une copie d'écran d'un OS propre :p
# Analyse intéressante mais dépassée ?
Posté par santos . Évalué à 1.
Cependant, celle-ci concerne le monde des bons vieux logiciels écrits en C, compilés à la main et installés en dur sur le poste client (je caricature volontairement).
Vraisemblablement, de nouveaux types d'applications apparaissent (et vont probablement se généraliser), en particulier les applications hébergées, les applications client riche, etc...
Dans ces derniers cas, l'analyse ci-dessus ne s'applique pas, puisqu'on ne raisonne plus avec une architecture mono-machine, avec couches OS / outils de base / frameworks / applications... (mais avec un type d'architecture que je ne saurais résumer en une phrase ^^)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.