Intervenant :  Donnie Berkholz

Lors de cette conférence Donnie Berkholz a présenté rapidement les principales caractéristiques du système de paquet utilisé par Gentoo.

Gentoo est une distribution dit source, c’est à dire que chaque paquet installé est préalablement compilé sur la machine (les paquets ne sont pas distribués sous format binaire). Elle descend des distributions Stampede Linux et FreeBSD.  Elle est connue pour ça rapidité (Gentoo étant aussi une espèce de manchot censé être la plus rapide) mais ce n’est en fait qu’un effet de bord, le vrai fer de lance de Gentoo étant la flexibilité (la plupart des options de compilations et d’installation sont configurables).

Le système de gestion paquet utilisé par défaut (portage) ne dispose pas d’interface graphique, les développeurs se sont focalisés sur la CLI.

Les paquets sont distribués sous forme de fichier texte appelé ebuild.  La syntax ressemble beaucoup à du bash ce qui les rend facile à écrire et à lire.

Plusieurs fonctions standard doivent ou peuvent être (re)définit dans un ebuild :

* pkg_pretend : est lancé avant l’installation des dépendances de compilations

* pkg_nofetch : fonction spécial appelé uniquement lorsque la variable RESTRICT contient fetch

* pkg_setup : configuration de l’environnement de configuration/compilation et vérifications

* src_unpack : extraction des sources du paquets

* src_prepare : patch des sources

* src_compile : processus de configuration

* src_test : test avant installation (unit test)

* src_install : installation du paquet dans le répertoire temporaire ${D}

* pkg_preinst : avant l’installation du paquet sur le système (e.g. création d’utilisateurs, mise a jour de fichier de configuration…)

* pkg_postinst : après l’installation du paquet sur le système (e.g. affichage de messages d’informations)

* pkg_prerm : avant la désinstallation du paquet (e.g. suppression de fichier temporaires)

* pkg_postrm : après la désinstallation du paquet (e.g. mise à jour de la base de données mime)

* pkg_config : configuration susceptible d’être effectuée après l’installation du paquet (e.g. création des base mysql standard)

* pkg_info : cette fonction est appelée lorsque le système demande des informations sur le paquet, elle n’est pas utilisée lors de la (dés)installation.

La rédaction d’ebuild est encore simplifiée avec l’utilisation d’eclasses. Les eclasses sont des bibliothèque de fonction pouvant être chargé dans les ebuild. Par exemple l’eclass user permet de créer facilement des utilisateurs ou des groups via les fonctions enewuser et enewgroup.

Il est possible d’installer plusieurs versions d’un même logiciel via la variable SLOT.

La variable EAPI définit la version de l’API utilisé. Il y a généralement une nouvelle version tous les cinq ans. En septembre 2012 est sorti la version 5. Chaque nouvelle API ajout de nouvelles fonctionnalités (ou en supprime certaines jugés dangereuses). Par exemple dans la version 5 la fonction src_test lance par défaut les testes en parallèles.

Par Maxime

Répondre