How to Install Chimera Linux (2027 Edition)

Cette vidéo présente l’installation et la configuration de Chimera Linux, une distribution légère qui rejette systemd, glibc et GCC au profit de musl, LLVM et des utilitaires FreeBSD, avec une démonstration pratique de la compilation d’un gestionnaire de fenêtres en ...

Voir la source

SYNTHÈSE STRUCTURÉE

Pourquoi Chimera Linux ?

L’intervenant, Tony, explique que Chimera Linux est une distribution « construite entièrement sur des refus » : elle abandonne les choix par défaut comme systemd, glibc et GCC. À la place, elle utilise les chimera utils (un mélange d’utilitaires FreeBSD), LLVM comme compilateur et musl comme bibliothèque C. L’objectif est d’obtenir un système plus léger, plus auditable et mieux adapté au linking statique.

Partitionnement avec cfdisk

Tony suit la documentation officielle de Chimera Linux pour partitionner le disque en UEFI. Il utilise cfdisk /dev/vda et définit le label comme GPT. Il crée trois partitions :

  • Une partition EFI de 1 Go (type EFI System)
  • Une partition swap de 4 Go (type Linux swap)
  • Une partition racine avec l’espace restant (type Linux filesystem)

Il insiste sur l’importance de bien configurer le label GPT pour l’UEFI.

Création des systèmes de fichiers

Après le partitionnement, Tony applique les commandes suivantes :

  • mkfs.ext4 /dev/vda3 pour la racine
  • mkfs.fat -F32 /dev/vda1 pour la partition EFI (FAT32)
  • mkswap /dev/vda2 pour le swap

Il note que la documentation recommande ext4 mais mentionne aussi XFS, bien que cela soit hors scope pour la vidéo.

Montage des partitions avec mount -m

Tony monte les partitions en utilisant l’option -m de mount pour créer automatiquement les répertoires nécessaires :

mount /dev/vda3 /mnt
mount -m /dev/vda1 /mnt/boot/efi
swapon /dev/vda2

Il vérifie avec lsblk que tout est correct avant de passer à l’installation.

Installation réseau avec chimera-bootstrap

Tony choisit l’installation réseau plutôt que locale, car elle fournit les paquets les plus récents et évite une mise à jour post-installation. Il exécute :

chimera-bootstrap /mnt

Cette commande télécharge et installe les paquets de base sur le point de montage.

Configuration post-installation dans un chroot

Tony utilise chroot /mnt pour configurer le système :

  • Création d’un utilisateur : useradd -m -G wheel tony (avec -m pour le home directory et -G wheel pour sudo)
  • Définition des mots de passe pour tony et root
  • Installation du noyau : apk add linux-stable
  • Configuration du hostname : echo "chimera-btw" > /etc/hostname
  • Réglage du fuseau horaire : ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  • Configuration de l’horloge matérielle : echo "local" > /etc/hwclock (différent de systemd)

Gestion des services avec dinit

Chimera Linux utilise dinit comme init system, pas systemd. Tony active le service DHCP en créant un lien symbolique :

ln -sf /usr/lib/dinit/dhcpcd /etc/dinit.d/boot.d/dhcpcd

Il explique que cela équivaut à systemctl enable dhcpcd sous systemd.

Installation de Zig et compilation d’OxWM

Tony installe Zig manuellement car il n’est pas dans les dépôts Chimera :

mkdir /opt
cd /tmp
wget https://ziglang.org/download/0.16.0/zig-linux-x86_64-0.16.0.tar.xz
tar xf zig-linux-x86_64-0.16.0.tar.xz
mv zig-linux-x86_64-0.16.0 /opt/zig
ln -sf /opt/zig/zig /usr/local/bin/zig

Il clone ensuite son gestionnaire de fenêtres OxWM (écrit en Zig) et installe les dépendances de développement :

git clone https://github.com/tonybanter/oxwm
cd oxwm
doas apk add libx11-devel libxrandr-devel libxft-devel fontconfig-devel
zig build -Doptimize=ReleaseSmall

Installation de GRUB et premier boot

Tony installe GRUB (malgré son origine GNU) pour le bootloader :

doas apk add grub-efi
grub-install /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg

Il ignore l’erreur os-prober car il n’y a pas de dual-boot. Après reboot, le système démarre correctement.

Démonstration de musl vs glibc

Tony compare les binaires statiques compilés avec musl et glibc :

  • Un hello world statique avec musl fait 140 Ko
  • Le même avec glibc fait 850 Ko (5,6 fois plus gros)
  • Sous glibc, le linker et libc sont deux fichiers séparés, contrairement à musl où ils sont fusionnés

Il montre aussi que le code source de getopt dans musl fait ~100 lignes, contre ~800 lignes dans glibc, ce qui rend l’audit bien plus simple.

CONCEPTS CLÉS

  • musl : Bibliothèque C légère, conçue pour le linking statique, avec un code source plus lisible que glibc.
  • dinit : Init system minimal utilisé par Chimera Linux, alternative à systemd.
  • APK : Gestionnaire de paquets d’Alpine Linux, également utilisé par Chimera Linux.
  • OxWM : Gestionnaire de fenêtres minimaliste écrit en Zig par l’intervenant.
  • Linking statique : Intégration de toutes les bibliothèques dans le binaire, ce qui le rend plus gros mais plus portable.

CONCLUSION

Chimera Linux illustre une approche radicale mais cohérente : remplacer les composants GNU par des alternatives plus légères et plus auditable (musl, LLVM, dinit). L’intervenant montre qu’il est possible d’avoir un système fonctionnel, avec un navigateur, un terminal et un gestionnaire de fenêtres, sans glibc ni systemd. Le principal bénéfice est la réduction de la taille des binaires statiques et la simplicité du code, au prix d’une compatibilité logicielle parfois réduite. Pour un administrateur cherchant à minimiser l’empreinte système ou à auditer son environnement, Chimera Linux est une option sérieuse à considérer.

Du même canal

Tout voir