Gentoo

De Libre choix
Aller à : navigation, rechercher
Gentoo
Distribution Linux Souple
Rich.: 2, Exploit.: 3, Tend.: Yellow Arrow Right.png
Environnement Linux
Licence GPL

Résumé

(mmo) Le principe de Gentoo, c'est de fournir un système de paquetage sources : chacun est recompilé au moment de l'installation, mais on a quand même une gestion des dépendances.

(dams 200601) Gentoo est une meta distribution facilitant l'emploi de divers noyaux. Elle 'carrosse' ainsi aujourd'hui Linux, plusieurs BSD, MacOS X.

Les concepteurs de Gentoo, afin de simplifier et de rendre agréable les travaux des administrateurs de machines et des contributeurs, profitèrent de l'expérience des autres distributions donc tentèrent d'éviter leurs limitations et défauts de leurs systèmes de paquetage.

Attention: seul un utilisateur disposant de solides compétences techniques Linux (si possibles acquises par l'emploi de plusieurs distributions) comprendra l'aperçu proposé ci-après.

Voici un aperçu de ses caractéristiques :

ebuild

Un ebuild est une recette de cuisine permettant de compiler un logiciel, en gérant les dépendances et les options transmises au compilateur qui dépendent de l'environnement. Il correspond en cela au fichier SPEC d'un RPM. Un ebuild est un fichier généralement court, en langage de script bash, très lisible et très simple. Il constitue la carte d'identité, pour toutes les architectures (plateformes matérielles gérées), d'une version donnée d'un logiciel. Tous les ebuilds sont gérés de façon centralisée (sous CVS, bientôt SVN).

portage

portage est le nom du gestionnaire de paquetages, donc est aux ebuilds ce qu'urpmi est aux RPM. Écrit en Python monolithique affreux, il est lent, légèrement buggué, et ne gère pas la gestion de dépendance pour la désinstallation (mais des outils complémentaires existent, tels rev-dep-rebuild ou unmerge). C'est clairement un point noir de Gentoo, où la réalisation d'un nouvel outil s'impose.

use flag

Un 'use flag' est un drapeau, qui correspond à une caractéristique, un attribut, ou une fonctionnalité. Il existe des use flag globaux et locaux. Ces derniers sont créés pour un ebuild. Puis, quand plusieurs ebuilds emploient un même use flag, il devient global. Par exemple, "ruby" est un use flag qui signifie que l'installation du paquetage décrit par l'ebuild implique que le système doit disposer du langage de script nommé 'Ruby'.

On peut ainsi sélectionner tous les uses flags orientés son et réseau/serveur, et enlever tout ce qui concerne X. Ainsi, il sera plus facile d'orienter sa machine pour en faire un serveur media et streaming, où X et les applications graphiques sont inutiles. Il est par exemple possible de changer les use flags après installation, pour migrer une machine sous KDE vers Gnome.

profile

Un profile est (comme son nom l'indique) un profil, qui influence beaucoup de composants globaux d'une version de Gentoo installée. Les profils sont organisés par architecture matérielle, puis par OS, puis par noyau ou par utilisation. Par ex, il eiste un profile gentoo-hardened, pour serveur ultra-securisé (avec PAX, RSBAC ou grsec, selinux, etc). Il existe un profil linux-2.4 et linux 2.6, amd64 32bits ou 64bits, ppc32 et ppc64, etc. Un profil contient notamment la liste des use-flags par défaut.

keyword

Les keywords permettent de configurer très finement le niveau de maturité des paquetages utilisés (cela rappelle, sous Debian, le 'pin' d'APT et le 'hold' de dpkg). Un keyword permet de marquer un ebuild. Un ebuild peut être marqué comme stable, il peut être "keywordé", il peut être hard-masqué, ou bien n'avoir aucun keyword. Les keywords sont specifiques aux architectures (au sens large, par ex, ppc64 et ppc32 sont des architectures différentes).

Pour une architecture donnée, un ebuild sans keyword signifie qu'il n'a jamais été testé sur cette architecture. L'utilisateur peut l'installer (en le keywordant en unstable) et le tester. Il est d'ailleurs invité à communiquer ses constats à l'équipe qui s'en occupe. Un ebuild keywordé en instable (~x86 ou ~ppc par ex) est considéré comme instable (pour une version donnée). Un keyword keywordé stable (x86, ppc) est considéré comme stable. Un ebuild peut être masqué, par le profile par exemple (les drivers nvidia binaires seront masqués par le profile ppc, car ils ne sont que pour x86), ou bien hard masqué (en cas de problème de dépendance ou de stabilité grave).

On peut configurer tout cela à loisir. Bien sur, on peut décider d'utiliser gentoo en mode instable, pour tous les ebuilds installés. Mais on peut également spécifier quels ebuilds sont acceptés en version instables. Ainsi, on peut décider d'avoir les dernières version de GTK et Ruby, car on développe des applis en ruby-gtk. Pour le développeur c'est un atout énorme: il peut façonner une partie de sa distribution pour faire du développement, tandis que le tous les autres paquets demeurent des versions mûres (stables). Gentoo offre ainsi une approche plus réaliste que les exclusives Cooker et Rawhide.

source-based

Gentoo est fondée sur les sources. Cependant, ce n'est maintenant plus le type par défaut des paquets. Depuis la dernière version stable, l'installation préconisée est celle qui découle de la GRP (Gentoo Reference Platform). La GRP contient les binaires ('builds') du sous-groupe system, ainsi que la plupart des ebuilds massifs et souvent utilisés, tels que X, KDE, gnome, etc. Lors de l'installation il sera nécessaire de compiler certains ebuilds, mais seulement s'ils ne sont pas dans la GRP, ce qui est rare (toutefois seule la release stable suivante offrira moyen de mettre à jour sans recompiler).

Le plus souvent chacun compile ses ebuilds, chaque machine installée est donc une combinaison de versions différentes, compilateurs différents, options de compils différents, use flags différents: donc beaucoup de bugs remontent liés à la compil (bug de compilateurs, versions de bibliothèques, etc). Beaucoup de bugs sont ainsi découverts et les nombreux contributeurs les traitent. Il en résulte des ebuilds très robustes et testés sur une multitude de configuration logicielles et matérielles.

Mode de publication

La communauté gentoo maintient en permanence une version stable (les ebuilds keywordé stable) et une version instable (les ebuilds keywordés instable). Tous les trimestres environ, une version stable est tirée des ebuilds keywordés stables. Des isos sont créés (grace à Catalyst, très bon outil de création de release) puis compilés pour diverses architectures. Il n'y a pas plusieurs arbres de stockage des ebuilds, ils sont tous dans le même CVS, car c'est leur keywording qui spécifie le niveau de maturité ('stabilisation') de chacun d'eux.

Il n'y a aucune mise à jour (bugs ou securité) fournie pour une version autre que la plus récente publiée. Il y a véritablement un manque à ce niveau, notamment pour l'acceptation par les entreprises, qui désirent une version stable dont les bugs et failles de sécurités sont résolus. Mais la communauté n'a pas les épaules assez larges pour maintenir autant de versions différentes.

Avantages

(oth 20020611) Dispose d'un système de ports à la BSD (Portage) grâce auquel on peut compiler sa version d'un paquet avec les options qui nous conviennent. Les auteurs ont visiblement pris le meilleur des ports des 3 BSD (FreeBSD, NetBSD, OpenBSD) et quelques éléments supplémentaires de certaines distributions Linux, dont une gestion fine des dépendances ; c'est le lien manquant entre une Debian et un FreeBSD.

(oth 20020611) Disponible pour plusieurs architectures (x86, Sparc/Sparc64, PPC).

Inconvénients

(mmo 20020611) Le problème de gentoo, c'est que s'il faut tout recompiler, j'imagine que c'est forcément terriblement long à installer si on n'a pas une machine trop récente. (Je met 1h à compiler un kernel sur mon Celeron 433, alors, une distrib complète, j'imagine à peine ...)

(oth 20020611) Ne propose pas de paquetage précompilé à ma connaissance (peut être un défaut ou une qualité, selon les points de vue).