Wiki Créer son système Linux personnalisé basé sur Gentoo

6
20
nov.
2011

Sommaire

Le principal avantage de Gentoo est sa flexibilité, son gestionnaire de paquets Portage vous permettant de créer un système adapté à toute tâche. Pour les pros, il n'y a rien de mieux qu'une distribution après l'installation de laquelle vous n'aurez rien à faire de plus : 5-10 minutes d'installation, et vous voilà devant des logiciels configurés et optimisés à votre goût.
Vous me direz : Mais on a le manuel Gentoo officiel! Soit, mais ce n'est pas une Gentoo classique qu'on va construire, vous verrez.

Vous avez plusieurs options pour le départ :
* Gentoo Stage3 - le minimum nécessaire pour commencer à construire votre système ;
* Calculate Scratch Server (CSS) - en fait, le même Gentoo Stage3 avec le noyau, les pilotes, le bootloader, Portage et les utilitaires Calculate ;
* Calculate Linux Desktop avec l'environnement de bureau KDE (CLD), Gnome (CLDG) ou XFCE (CLDX) ou Calculate Directory Server (CDS).
* Calculate Linux Scratch (CLS) - CSS + Xorg + wireless ;

Qu'est ce que Calculate Linux ? http://www.calculate-linux.org/
La version "server", comme son nom l'indique, vise les différents types de serveurs, la version "desktop" étant orientée usager ordinaire, avec sa suite bureautique LibreOffice et ses outils Internet. Toutefois, les deux comprennent les Utilitaires Calculate 2 (les Calculate 3 sont en chantier, la preuve (EN)) dont on aura besoin pour faire une distribution de nos rêves :)

En effet, dans cet article, j'explique comment on peut créer sa propre distribution à base de Gentoo et à l'aide des utilitaires Calculate 2.2. A l'issue de cette opération, vous recevrez une image ISO hybride qui peut être gravée sur un CD, un DVD ou une clé USB, entièrement compatible avec Gentoo, supportant l'installation sur un disque dur externe, une clé USB, un disque dur, avec le support des LVM et Raid, et le système de fichiers de votre choix, soit ext4, ext3, ext2, reiserfs, btrfs, xfs, jfs, nilfs2 ou encore fat32.

Pourquoi Calculate Linux ?
D'abord parce qu'elle propose des profils binaires. Ceci dit, vous pouvez toujours retourner à la compilation avec eselect profile list set _N_du_profil_, mais on se demande si ça vaudrait la peine (sans parler du temps passé à compiler et de la surchauffe de votre laptop…). Et puis, choisir un profil binaire ne revient pas forcément à utiliser des paquets encombrants, avec des fonctionnalités dont vous ne vous servirez jamais (d'ailleurs, même une CL précompilée est rapide) : l'objectif est, effectivement, de se débarrasser de tout ce qui est inutile, et ce ne sont que les paquets modifiés qui seront recompilés.

2°, Calculate n'est pas juste une Gentoo légèrement refaite avec de jolis fonds d'écran. Ils ont leur overlay, qui s'ajoute facilement avec layman, un ensemble d'outils assez performants pour configurer le système, y compris en mode interactif, créer une ISO, recompiler et installer un nouveau noyau (en surcouche du genkernel), et, surtout, les templates.

3°, Calculate peut être déployée rapidement en entreprise, offrant une solution client-serveur prête à l'emploi.

4°, les dépôts sont désormais sur Git ; du coup, la synchronisation est beaucoup plus rapide.

1

Toutes les opérations ici décrites s'effectuent dans la console et avec les droits de l'utilisateur root.

Prérequis

Bien sûr que vous devez disposer de Gentoo Linux (ou une autre distribution apparentée à Gentoo) et de la connection Internet. Personnellement, j'ai opté pour Calculate Linux Desktop KDE (64 bits), mais, je me répète, vous n'êtes pas obligé de faire de même, toute distribution gentooesque fera l'affaire.

Commencez par installer les paquets calculate-assemble et calculate-builder si vous ne les avez pas déjà. Sur une Gentoo pur sang il faudra d'abord ajouter l'overlay Calculate :

emerge layman
layman -a calculate
emerge calculate-assemble calculate-builder

Maintenant, vous devez décider quel environnement vous préférez (référez-vous à la liste du début).

Téléchargez, suivant vos objectifs, le dernier archive de Gentoo Stage ou un stage de Calculate et mettez-le dans le répertoire /var/calculate/remote/stages ou /var/calculate/linux, respectivement :

cd /var/calculate/remote/stages
wget http://mirror.yandex.ru/gentoo-distfiles/releases/x86/current-stage3/stage3-i686-20111018.tar.bz2

ou

cd /var/calculate/linux
wget http://mirror.cnet.kz/calculate/CLDX/stages/i686/cldx-20111024-i686.iso

L'image stage de Calculate inclut l'arbre Portage. En fait, c'est ce qui distingue un stage de Calculate d'un Gentoo Stage. En construisant le système à partir d'un Gentoo Stage, vous devrez mettre les portages dans le répertoire /var/calculate/remote/snapshots

cd /var/calculate/remote/snapshots
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-20111024.tar.bz2

N'oubliez pas que les paquets contenus dans Portage sont régulièrement mis à jour.

Pour cet article, j'ai choisi CLDX (32 bits), et ce, pour plusieurs raisons :

  • La distribution inclut déjà la plupart des utilitaires nécessaires ;
  • Elle n'est pas rattachée à Gnome/KDE ;
  • XFCE est très léger et peut être vite supprimé si vous vous en lassez.

Préparer votre environnement pour l'installation

cl-assemble va préparer votre environnement à la construction. Vous pouvez choisir parmi les profils disponibles. Dans Calculate Linux, l'environnement choisi déterminera les paramètres. CLD est optimisé pour l'utilisation de Qt/KDE, CLDG pour Gtk/Gnome, XFCE pour Gtk. Ce dernier vous conviendra parfaitement si vous vous opposez à KDE comme à Gnome.

Si vous indiquez le profil "CLDX", le système vous demandera de préciser le nom :
2

Vous devrez également indiquer la partition pour l'installation. Cela peut être une partition sur le disque dur (10-15 Go) ou un répertoire. Si vous préférez le répertoire, il vous faudra quelque temps pour en supprimer les anciens fichiers. Par défaut l'utilitaire se sert de l'image de Gentoo Stage3 et des derniers portages.
3

Nous avons choisi, je vous le rappelle :) un CLDX 32 bits qui peut être téléchargé d'ici. Précisez donc le profil, et si vous travaillez dans un système 64 bits, indiquez que vous voulez l'architecture i686 :

cl-assemble -p desktop/CLDX/x86/binary -d /dev/sda2 --source=CLDX --march=i686

Tous ces préparatifs ont pris 10 minutes sur mon ordinateur.
4

Mettre le système à jour

L'utilitaire cl-make vous aidera à construire l'environnement. Mais arrêtons-nous sur certains points. Si vous voulez installer le système d'un Stage3, utilisez l'option -m (ou, si on l'écrit en toutes lettres, --make) ; pour une installation faite à partir d'une image de Calculate, utilisez -u, (--update). L'option -V (ou --withvideo) va copier des pilotes vidéo propriétaires. La copie sans installation permet de ne pas violer la licence GPL, mais vous pouvez toujours choisir le pilote propriétaire qui sera installé pendant le démarrage.

cl-make -u -V

Mettons notre système à jour.
5

Vous aurez remarqué que je ne mets pas de profil dans cet exemple. En effet, il ne doit être précisé que si vous installez plusieurs systèmes simultanément, par exemple, des versions 32-bits et 64-bits ; si c'est bien le cas, saisissez -p amd64 et -p x86. Le programme comparera les versions et essaiera de choisir le bon profil.

Dans mon exemple, 40 paquets ont été mis à jour.
Notez que les utilitaires Calculate enregistrent leurs opérations dans /etc/calculate/assemble.env :
6

Certaines valeurs, par exemple, le serveur de portages rsync ou les partitions disponibles, peuvent être définies dans des variables des utilitaires Calculate. Ceci est un exemple que j'emprunte à un vrai serveur :
7

Une fois les partitions indiquées, vous n'êtes pas obligé d'utiliser l'option de la partition pour construire le système.

J'ai eu le temps d'écrire ce texte pendant la mise à jour. Les premiers à être renouvelés étaient gtk et python ; décidément, j'aurais dû prendre l'image d'aujourd'hui ! Malgré le choix du profil binaire, les derniers paquets sont compilés du code source.

Apporter des modifications

Enfin, le plus intéressant ! Nous pouvons modifier plein de choses :

  • le contenu des paquets ;
  • les paramètres ;
  • la configuration des programmes ;
  • la configuration de l'environnement ;
  • les thèmes, etc.

Comme vous pouvez le voir, le système est déployé dans le répertoire /mnt/calculate-desktop-CLDX-x86-binary/. Utilisez ce répertoire pour toutes vos modifications. On voit sur mes captures d'écran que le système déployé est en train d'être réglé. Tous les gabarits sont stockés dans /usr/share/calculate/templates/assemble/. L'essentiel, quand on modifie les réglages, est d'éviter les collisions. Parfois, vous pouvez créer vos propres gabarits pour les modifications ou utiliser des fichiers alternatifs. On va l'expliquer plus en détail par la suite.

Paramètres d'assemblage

Le contrôle des paramètres d'assemblage s'effectue à l'aide des options USE. En réduisant les dépendances vous gagnez en souplesse :

  • les programmes sont exécutés plus rapidement ;
  • la sécurité du système est renforcée ;
  • vous voilà délivré des dépendances inutiles ;
  • le système a besoin de moins d'espace disque.

Regardons le contenu de la variable USE. Pour ce faire, exécutez :

linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary /bin/bash -c "emerge --info"

Vous pouvez voir que j'ai utilisé chroot avec linux32, car j'ai l'intention de créer un système 32 bits sur une plateforme 64 bits. Pas vous ? alors, vous n'aurez pas besoin de cet outil.

Il y aura beaucoup de paramètres. Pour l'information supplementaire voir /usr/portage/profiles/use.desc pour les paramètres globaux et /usr/portage/profiles/use.local.desc pour les paramètres locaux.

Pour que la modification des paramètres soit appliquée à tous les paquets, c'est le fichier make.conf qui est utilisé directement. Or, la construction du nouveau système va modifier le contenu du fichier ; je vous conseille donc d'utiliser, plutôt, /etc/portage/make.conf.

Par exemple, désactivons le support de ipv6 dans tous les paquets. Ajoutez au fichier /mnt/calculate-desktop-CLDX-x86-binary/etc/portage/make.conf la ligne suivante :

USE="-ipv6"

Voyons le résultat. Cette fois-ci, servons-nous de l'option -U au lieu de -u. Cela nous permettra de gagner du temps pour la synchronisation des arbres Portages. Executez cl-make -U -V :
8

Remarque. Comme le serveur Xorg a été recompilé, ses modules seront également recompilés à la fin. Si vous faites plusieurs compilations de suite, l'utilitaire va analyser le fichier emerge.log et recompiler les pilotes de Xorg. Pour y échapper, vous pouvez supprimer le fichier var/log/emerge.log dans le système compilé. De toute façon, ce fichier sera supprimé une fois l'image ISO est créée.

Paramètres USE et masquage de paquets

Pour modifier les paramètres et les masques, on utilisera les répertoires suivants: etc/portage/package.use, etc/portage/package.keywords, etc/portage/package.mask, etc/portage/package.unmask. Sachez que emerge-2.2 est capable de démasquer, à lui seul, les dépendances.

Je vais vous montrer comment démasquer les paquets sur l'exemple d'un navigateur Web, Firefox. Pour commencer, on va chrooter :

linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary
env-update && source /etc/profile

Pour connaître le nom correct du paquet firefox et avoir la liste des versions disponibles :

eix firefox
* www-client/firefox
     Available versions:  *3.6.12 3.6.20 ~3.6.21 ~3.6.22 ~7.0.1-r1

La dernière version stable du paquet est donc 3.6.20. Tiens, ça date un peu… Démasquons la version 7.0.1-r1 :
9

Pour la mise à jour des réglages utilisons dispatch-conf au lieu de env-update :
10

L'utilitaire va nous aider avec la mise à jour des masques et des paramètres USE. Dans les deux cas appuyez sur "u" pour accepter les modifications suggérées.
11

Ici vous pouvez vérifier et copier d'autres paquets requis pour la compilation. Terminez par vérifier les dépendances:

emerge -p paquet1 paquet2 ..

Ajouter des paquets

Tous les paquets qu'on installe, à part les dépendances, sont inscrits dans le fichier 'world'. Dès que vous ayez installé un paquet, il est porté sur le système avec les bibliothèques dépendantes. Si le système n'a plus besoin de certaines bibliothèques, la commande emerge --depclean les supprimera. Pour cette raison, tous les paquets (sans dépendances) que vous avez installés en supplément doivent figurer sur le fichier 'world'. On peut les supprimer également par le biais de la commande emerge --unmerge en indiquant le(s) paquet(s), sinon à la main, en éditant le fichier et en exécutant emerge --depclean.

Pour la compilation de l'arbre des dépendances l'utilitaire Calculate utilise des méta-paquets, à base de app-misc/calculate-meta. Les paramàtres USE compilent l'arbre des dépendances en entier. Comme vous auriez utilisé des logiciels ciblés pour la vérification du système, le fichier var/lib/portage/world ne contiendra qu'un seul méta-paquet avant la création du système.

Pour que vous puissiez gérer les paquets que vous ajoutez à la distribution avec plus de facilité, Portage fournit un excellent outil, qui est les sets. Les sets vous permettent de faire vos sélections thématiques. Les sets supportent également des imbrications ce qui est aussi très commode. Vous pouvez éditer votre liste des paquets à l'aide du set @custom qui est défini dans le fichier /etc/portage/sets/custom, en y ajoutant:

 www-client/firefox

Ou vous pouvez créer un nouveau set, par exemple 'web', en y ajoutant le paquet, et porter le lien correspondant sur le fichier 'custom' :

@web

Le set peut donc contenir les sets imbriqués tout comme les paquets.

Pendant la mise à jour du système les programmes des sets seront installés, puisque tout set est listé dans son fichier world, stocké dans /var/lib/portage/world_sets.

Supprimer des paquets

Si nous supprimons le fichier world et exécutons emerge --depclean, nous aurons l'image Stage3. En d'autres termes, la configuration minimale sera préservée comme 'system'. Pour sa mise à jour on utilise soit la commande emerge system, soit le set @system. Le méta-paquet calculate-meta compile les dépendances en fonction du profil choisi. Avec les paramètres USE calculate_nowireless, calculate_nonetwork, calculate_noxfce, etc., on peut supprimer certaines dépendances. Dans le fichier /var/lib/layman/calculate/profiles/desc/calculate.desc vous pouvez voir la liste complète des paramètres. Supposons que nous souhaitons supprimer le support des périphériques sans fil. Pour cela, éditez /etc/portage/make.conf, en y ajoutant :

CALCULATE="nowireless"

Le paquet firefox sera installé, et les dépendances superflues, supprimées :
12

Créer la nouvelle image système

Pour créer l'image ISO du nouveau système, utilisez cl-image :

 cl-image --live iso

13

L'option --live permettra de gagner quelques secondes sur le démarrage du système à partir d'un LiveCD ou d'un USB-Flash. Ajoutez cette option si vous utilisez la dernière image Stage de Calculate Linux.

Finaliser l'installation

Si besoin est, ou si votre installation est terminée, vous pouvez abandonner l'assemblage à tout moment, en exécutant :

 cl-make --break

14

Bilan

J'ai expérimenté avec Calculate Linux Desktop XFCE et son profil binaire CLDX. Désormais, je vais mettre à jour le système à l'aide de la commande emerge -uDNa world, pour que mes paramètres USE personnalisés soient pris en considération. Si les paramètres sont identiques aux valeurs par défaut, les paquets seront installés du dépôt. Sinon, le paquet sera recompilé sur mon ordinateur.

J'ai obtenu l'image avec les logiciels que je voulais. Bien entendu, toutes les possibilités ne sont pas décrites ici. On pourrait préparer des gabarits pour l'environnement de bureau, et plus.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.