URL: https://linuxfr.org/users/ehoebadoag/journaux/long-exp%C3%A9rience-gentoo Title: [Long] Expérience Gentoo Authors: 007 Date: 2004年10月23日T03:05:20+02:00 Tags: debian, ubuntu, openoffice, firefox, selinux et postgresql Score: 0 J'ai hésité avant de faire ce journal. Mais je pense que l'avis d'une personne, convaincu par les distributions binaires, sur une distribution source peut intéresser d'autres personnes. Une personne convaincue par les distributions sources, sera convaincue par Gentoo et ce n'est "pas très intéressant" :-) En général, je me fais exploser quand je teste un truc. Je ne dois pas mettre assez de "la distribution de l'avenir", "un potentiel infini", ... et d'autres "formules" magiques. Si vous vous attendez à des "formules" de ce type, allez vite ailleurs. Merci. Pourquoi j'ai tester une Gentoo ? Simple, j'ai voulu faire le point dans les distributions pour voir si ma distribution habituelle était la bonne (pour moi). J'ai déjà testé Mandrake, Debian, Ubuntu (à l'arrache) et SuSE. Ma distribution habituelle est Fedora. Donc, logiquement Gentoo est une suite dans cette série. Sauf que Gentoo est une distribution source et c'est un modèle qui ne m'emballe pas. Il faut compiler, ça prend des plombes, ça bouffe de la place, si ça plante au milieu car t'as mis à jours une autre paquet t'as les boulles graves, si tu tombes sur une mise à jour d'un gros paquet en fait tu l'auras que 12 heures après (faut compiler), etc... M'enfin, je me force car j'ai lu du bien de la distribution et aussi dans l'espoir de mourir moins con... Ce test c'est déroulé il y a une semaine. Je dis tout de mémoire. Il y a peut-être des conneries. Tout commence en allant sur le site Gentoo, je trouve la doc, elle est en français, elle n'est pas longue et correctement organisée. Surtout la doc évite de parler de ce qui n'est pas nécessaire. T'as le manuel d'installation (précis, concis) et pas un manuel d'installation noyé dans un manuel d'administration et d'introduction à Unix avec l'historique du mouvement open source dans le détail. Bref, ça commence très bien. Une telle distribution dont le *coeur* de cible est les utilisateurs qui veulent un OS aux petits oignons doit s'appuyer sur une bonne doc et une bonne doc n'est pas un roman. C'est le cas. Le manuel d'installation est plus un HOWTO qu'un réel manuel. Pour une installation, c'est nickel. Le manuel d'utilisation ... est un manuel d'utilisation de Gentoo (c-à-d emerge/portage); et pas du logiciel libre en général. Tant mieux, c'est bien foutu. Seul petit regrêt, le manuel passe rapidement sur l'installation depuis une installation existante alors que ça me semble la meilleur méthode, surtout car la plus confortable. Ton OS quotidien/favoris est disponible et en tâche de fond tu compiles. En lisant la doc, ce qui m'a le plus particulièrement intéressé, c'est la capacité d'avoir une distribution "pil poid" correspond à mes besoins. Les optimisations de la mort qui tue avec CFLAGS, je m'en fous. Pour un maximum de souplesse, il faut faire une installation depuis stage1. Je bootstrap. C'est long mais pas tant que ça. Puis vient la configuration avant de compiler les programmes de mon choix. Gentoo, donne une souplesse dans la configuration de la distribution assez impressionnante : - USE : défini les fonctionnalités que vous voulez ou pas. Attention, ne définit pas les paquets que vous voulez ! Sert par exemple à dire d'ajouter le support pour postgresql aux programmes qui l'offrent. Par exemple, s'il y a "postgres" dans USE alors si vous demandez le paquet php, il sera compilé avec support pour postgresql. - KEYWORDS : Agit comme un "filtre". Permet de choisir entre la branche stable ou de développement par exemple. Interdit aussi l'installation d'un paquet. Par exemple vous avez choisi la "branche" stable et demandez un programme classé dans "testing" alors l'installation du paquet sera refusée. Il y a aussi les profiles. Par défaut, c'est gentoo-2004.2. Mais avec noyau 2.4. Étant déjà trop habitué à Linux 2.6, j'ai fouillé pour contourner ce point "faible" et découvert que portage supportait les profiles en cascade. Très astucieux ça (ça a l'air récent). Donc dans le profile gentoo-2004.2 j'ai choisi gcc34 (en fait, pour KEYWORDS = "x86" (stable) c'est gcc 3.3). Dans ce sous profile il y a Linux 2.6. Parfait, j'ai le bon profile :-) Après, je fixe la variable USE. C'est assez long à faire et demande réflexion (une erreur peut coûter une longue recompilation). Au final, j'ai une variable USE longue comme un jour sans pain (nptl, python, pam, etc). Cyniquement, je me dis qu'avec tout ça la "fameuse" gentoo va se gauffrer comme une merde. Je n'ai pas cherché un truc tordu pour planté Gentoo ! J'ai honnètement choisi ce qui me convient. La variable USE (dans /etc/make.conf) étant pour tous les paquets, il est aussi possible de définir la variable USE à utiliser par paquet. Je n'ai pas eu besoin de cette possibilité. Donc, je choisi les fonctionnalités que je veux (variable USE), dans la "branche" stable (KEYWORDS="x86") dans un profile avec linux 2.6. Il manque maintenant à choisir les paquets. Celà sera fait avec "emerge nom_paquet". Le moins qu'on puisse dire, c'est que c'est particulièrement souple _et_ puissant (c-à-d parfaitement gèrable). Par précaution (car le bootstrap c'est fait avec les entêtes linux 2.4 et sans NPTL), je mets à jours (+linux26-headers +gentoo-dev-source (linux-2.6)), compiles un noyau, et recompiles tous les paquets (emerge --emptytree world). Tous se passe bien mais je me rend compte qu'il y a quelques dépendances circulaires (entre autre entre nptl/db4/libc, c'est indépendant de Gentoo). Bon, j'emploi les gros moyens. Je passe à stage2 (emerge system) et recompile encore le tout (emerge --emptytree world). C'est long.... Mais ça ne me dérange pas. Je fais ça en chroot (+ screen) depuis ma distribution "normale" que je peux utiliser pleinement comme d'habitude. C'est long ... mais c'est bon. Tout est d'équerre. Un petit "ooops", j'ai du ajouter "posix" pour perl. Notons que je fais ça depuis FC3T3 et que chroot n'a pas posé de problème contrairement à Debian et Ubuntu. Avant d'attaquer le "gros" reste (la compilation des programmes de mon choix), je fais quelques "emerge --verbose --pretend paquet" pour voir ce qui m'attend. À vu de pif, tout est correcte. Les dépendances sont pertinentes et je n'ai pas à ajouter de trucs (par contre, parfois, certaines dépendances semblent inutiles). Dans les paquets, il y a des paquets "virtuels" comme le paquet gnome. Par exemple "emerge gnome" signifie pour ma configuration : installe Gnome (les paquets "réels" et stables qui vont biens), demmerde toi avec les dépendances en tenant compte de la variable USE que j'ai défini. Je lance "emerge postgresql subversion php x11 gnome evolution openoffice-xiniam pan ..." et je vais me coucher avec l'assurance de voir un joli plantage le lendemain matin compte tenu de mon USE. Une petit explication sur "emerge 'paquet'". C'est un peu plus subtile qu'un "apt/yum install 'paquet'" avec la compilation en plus. Les emerges explicitent (qui ne sont pas liés à une dépendance) sont stockés dans "world". World indique uniquement les paquets que vous avez explicitement demandés et donc dont que vous avez explicitement besoin. Ainsi, si après une mise à jours, un paquet n'a plus de dépendance avec world, vous (en réalité emerge/portage) pouvez facilement le savoir et le supprimer. Celà se fait avec "emerge depclean". Un "emerge --pretend depclean" ("--pretend" liste ce qui va être fait) est conseillé néanmoins :-). Ou en étions nous ? Ah oui, je suis allez me coucher après avoir lancé un énorme "emerge ...." et me suis préparé psychologiquement à voir un plantage le lendemain matin. Le lendemain matin au réveil, je vais en direction de mon PC le sourire en coin. Énorme déception. Ça compile toujours "joyeusement". Je regarde le log de la compilation et je vois quelques "warning, lancer etc-update". J'arrêtes la compilation (^C) et m'exécute. etc-update est assez trivial/basic mais astucieux et bien vu. Il permet de fusionner les fichiers de configurations actuels avec les nouveaux fichiers proposés. C'est un outil merge classique comme avec les gestionnaires de version. Je ne vois rien de "grave" et tout (deux fichiers :-)) est fusionné "les doigts dans le nez". Je relance la même longue commande emerge (moins ce qui a déjà été fait) en me disant que c'est un bon test pour voir comment emerge va reprendre son travail. Ça roule sans problème. Gentoo a aussi des "fonctionnalités" intéressantes que je n'ai pas testé. Il y a le flag "hardened" pour USE qui renforce la sécurité. SeLinux est aussi supporté et tout est configuré à la volé (comprendre avec une lonnngguuueee compilation). En fait, on trouve pratiquement tout. Gentoo étant orienté source, on pourrait croire que c'est relativement "rustre" et que les paquets sont brutes de décoffrage. En fait non. Il y a beaucoup de "add-on", de patchs spécifiques. De même, les fichiers de configurations par défaut sont globalement bien foutus et ce n'est pas le stricte minimum qui est fourni. Enfin, la compilation est terminée. Dieu que c'est long. Je parcours l'énorme log et je constate qu'il reste quelques problèmes de dépendance circulaire. Mais Gentoo n'y est peut rien. J'ai autre chose à faire pour les deux jours à venir et pendant ce temps je peux refaire un "emerge --emptytree world". Je le fais. Deux jours plus tard, tout est place. Je fais le tour du propriétaire : - Linux 2.6.8.1 + patchs - libc 2.3.3 assez récente - evolution 1.4 (c'est la branche stable) - firefox 0.10 - gnome 2.6 - xorg 6.8.0 etc... Pour une version stable, c'est à jour. Avant de rebooter sous Gentoo, il faut passer un bon moment avec la doc et les fichiers de configurations dans /etc. Rien de très dure mais assez long. Je paufine /etc, me crée un compte, et je vérifie une dernière fois. Tout est OK, je reboote. Je suis sous Gentoo. Que dire ? Ça marche. À partir de là, c'est une distribution "comme les autres". Son "charme" n'est pas là. Du coup j'ai plus envis de jouer avec elle ;-| Pour le "fun", je fais : - emerge --sync - emerge --deep update Fichtre. Il y a une mise à jours d'openoffice.... ^C Je vais finir sur un reproche. Il manque un "journal" des compilations avec les warnings/conseils donnés par emerge. Fouiller dans les logs (qu'on aura pris soit de créer...) est lourd. Conclusion: Je ne parle que de l'emploi "stage1" (ou stage2, il n'y a pas énormément d'écart) ou on peut réellement tirer avantage de la formidable souplesse de Gentoo par rapport aux autres distributions. Je ne change pas de distribution et reste un adèpte des distributions binaires (avec les sources de disponibles qu'en même :-)). Néanmoins, force est de constater que Gentoo est particuliairement bien foutu. L'installation est "laborieuse" mais un usage quotidien semble tout à fait envisable avec la branche "stable" même adaptée aux petits oignons comme je l'ai fait. Il n'y a qu'à faire "emerge --sync ; emerge --update" de temps en temps et suveiller le log de les compilations. Il ne faut pas si tromper, même si je ne passe pas sous Gentoo, cette distribution, pardon, cette meta-distribution m'a _réellement_ impressionnée. Elle m'a impressionné par ces idées/inovations et par la qualité globale compte tenu des contraites énormes : faire une (meta)distribution source _hyper_ configurable, _réellement_ gérable et stable. Chapeau bas. Et en plus ça marche sur plusieurs plate-forme. Que dire de plus ? Les faits parlent d'eux même. Il est vrai que j'ai du mal à voir l'intérêt _réel_ de tout ça. Peut-être pour l'embarqué ou quelques cas particuliers. Quoiqu'il en soit, c'est une formidable bête à compiler et une plate-forme de test du logiciel libre (compiler dans 50 000 configurations différentes) formidables. C'est peut-être grace ça qu'elle est déjà disponible sur plusieurs plate-forme et très à jours. Bref, gouttez la et si le coeur vous en dit bouffez en tout les jours :-) (surtout si vous avez un gros apétit (genre bi-cpu ou quadri-cpu)). Bien que l'installation ne soit pas très dure (mais très loins d'être "out of box"), elle demande un minimum de background et surtout de culture du logiciel libre. Sinon on n'est pas capable de définir correctement ce qu'on veut (variable USE) et Gentoo (depuis stage1) est sans intérêt. Par rapport à la série de distribution que j'ai testé, Gentoo a amené de la fraicheur. Elle a du "chien" par rapport aux autres. C'est aussi la dernière distribution que je teste et je suis content de terminer sur Gentoo et non sur une ennuyeuse ... ou ...

AltStyle によって変換されたページ (->オリジナル) /