Styles

jeudi 11 décembre 2008

Gentoo Linux, grandeur et décadence de Portage

De nombreuses fois je me suis dit qu'il serait intéressant de voir comment marche la distribution Gentoo Linux. Ayant un peu d'expérience dans le monde *BSD, et une utilisation purement gui-oriented de Ubuntu, je me suis dit qu'il serait intéressant de voir d'un peu plus près comment fonctionne une distribution orientée package, c'est à dire qui offre toute la souplesse d'installation de package comme dans les distributions *BSD, tout en permettant un maximum de configurabilité de ceux-ci.

Donc, je viens de faire mes premiers pas avec Gentoo Linux et son système de gestion de package nommé "Portage". La documentation Gentoo est assez clair lorsqu'il s'agit de faire l'installation de base d'un système Linux sur un PC, le tout, en ligne de commandes pour autoriser un maximum de flexibilité.

Quelques fdisk, chroot et grub plus tard, j'arrive enfin à rebooter et démarrer pour la première fois un Gentoo Linux sur mon vieux laptop, un Packard Bell Easynote C3300 (S/N:101981130134). Oui, c'est vraiment un vieux portable, de 2004 si je me souviens bien. Bien que la soufflerie soit bruyante, l'ensemble de ce laptop reste assez cohérent avec 512Mo de mémoire (dont 32Mo de mémoire partagée pour la carte graphique sis740 intégrée).

De base, la configuration ACPI marche bien (ce qui n'est pas le cas avec FreeBSD par exemple) ce qui fait que la soufflerie fini quand même à s'arrêter au bout d'un moment.

Le système Portage, et surtout la commande "emerge" est très pratique. Pour chaque package, il y a une gestion cohérente des numéros de version, et surtout des dépendances entre packages. Tout cela est écrit dans un fichier ebuild (1 fichier ebuild par package) qui rassemble l'ensemble des dépendances et contraintes sur le package.

De plus, comme un package a des fonctionnalités en option (comme le support d'une interface x11 par exemple, ou l'utilisation de gtk plutôt que qt4) les options que l'on souhaite supporter sont stockées dans une variable d'environnement nommée USE. Celle-ci, définie globalement au niveau du fichier /etc/make.conf ou localement sur la même ligne de commande que emerge, permet de lister l'ensemble des drapeaux (USE flags) indicateur de fonctionnalités supportée.

Par exemple, il suffit de mettre USE="gnome gtk -kde -qt3 -qt4" pour que tous les outils que vous téléchargez et compilez avec emerge le soit pour gnome et pas pour kde et les librairies qt.

Jusqu'à quelques temps, tout allait bien, mais c'est quand j'ai voulu installer gnome, et donc xorg avant tout, que ça c'est mis à devenir plus compliqué.

Moi, benoîtement, j'essaie un truc comme ça :

emerge --pretend gnome

histoire de voir ce que va faire emerge pour installer gnome. C'est alors qu'il m'indique tout un tas de dépendances circulaires entre les drivers video et les composants de base xorg. Un rapide tour vers la documentation gentoo me laisse en plan avec cette phrase sibylline :

Two (or more) packages you want to install depend on each other and can therefore not be installed. This is most likely a bug in the Portage tree. Please resync after a while and try again. You can also check bugzilla if the issue is known and if not, report it.
Même après:

emerge --sync
emerge -auDN world
emerge --depclean
revdep-rebuild


un emerge --pretend gnome me renvoie encore des dépendances circulaires. Aaargs, y aurait-il un bug dans Gentoo lors de l'installation de base de X Windows. Franchement, j'en doute, j'imagine que si c'était le cas, il y aurait eu quelqu'un pour corriger ça tout de suite...

Mais après une recherche avec mon ami Google, je m'aperçois que j'ai trop confiance dans la communauté open source et sa réactivité. Je tombe sur le bug report n°225091 qui montre exactement mon problème. Bon alors là, je deviens plutôt sceptique quant à la robustesse de gentoo linux. Heureusement, je trouve le commentaire #17 pour m'aider et me permettre d'installer X Windows.

C'est là que je me dis que je ne vais pas passer mon temps à résoudre des problèmes de dépendances circulaire alors que précisément, je pensais que Gentoo Linux avait soigné cet aspect dépendance. L'avenir me le dira, je n'abandonne pas maintenant un système qui me paraît malgré tout assez prometteur.

Ce qui est sympa c'est de mettre en place son Linux, petit à petit, du CDROM vers le disque dur tout en pouvant faire des choix à chaque étape. Comme tout est en ligne de commande et qu'il n'y a pas d'installeur à proprement dit tel qu'on en a l'habitude sur Debian ou les *BSD, on arrive à beaucoup plus comprendre ce qui constitue le système, où se trouve tous les fichiers de configuration, d'initialisation, de gestion des packages, etc.

C'est instructif, et permet de mieux comprendre Linux.

Aucun commentaire: