Alpine et rpi
Présentation
Depuis quelques mois maintenant j’ai adopté Alpine Linux comme distribution Linux.
Il faut dire que la petite bête a de quoi attirer le bidouilleur amateur que je suis :
- Base légère (Busybox et Musl Libc)
- Publication de versions stables (Tous les six mois)
- Une version Rolling Release
- Un système de paquetage facile à prendre en main
- Communauté restreinte et conviviale
Et c’est donc tout naturellement que je me suis essayé à utiliser la distribution sur mon Raspberry Pi 3 comme serveur léger.
Rpi
Chose qu’il faut savoir avant toute chose, Alpine
fonctionne nativement en mode diskless
, en RAM. C’est-à-dire qu’un simple reboot vient réinitialiser toutes vos modifications vu que la partition système est en lecture-seule. Fort heureusement il existe un petit outil maison nommé lbu
permettant de sauvegarder vos modifications afin de les restaurer au redémarrage.
Il arrive cependant qu’il soit nécessaire d’avoir une partition permanente pour écrire des données. Car même si lbu
permet la sauvegarde il fonctionne en instantané et il faudra alors sauvegarder régulièrement lors d’utilisation d’un serveur web ou d’autres outils (dépôts git, moteur de blog, dns local).
La création d’une partition permanente se fait comme suit :
# Montage de la carte sd en lecture/écriture
mount /media/mmcblk0p1 -o rw,remount
sed -i 's/vfat\ ro,/vfat\ rw,/' /etc/fstab
# Création d'un fichier img contenant notre partition permanente
dd if=/dev/zero of=/media/mmcblk0p1/persist.img bs=1024 count=0 seek=1048576
# Création de la partition, montage
apk add e2fsprogs
mkfs.ext4 /media/mmcblk0p1/persist.img
echo "/media/mmcblk0p1/persist.img /media/persist ext4 rw,relatime,errors=remount-ro 0 0" >> /etc/fstab
mkdir /media/persist
mount -a
# Création du répertoir racine permanent, montage
mkdir /media/persist/var/lib
mkdir /media/persist/.work
echo "overlay /var/lib overlay lowerdir=/var/lib,upperdir=/media/persist/var/lib,workdir=/media/persist/.work 0 0" >> /etc/fstab
mount -a
# Sauvegarder le montage automatique au démarrage
lbu commit -d
Ainsi j’ai une partition permanente, montée à /var/lib
me permettant de pouvoir avoir sereinement un serveur web fonctionnel. Avec nginx, writefreely et radicale
la mémoire vive consommée est de ~350MO.
Le système est plus que léger, stable et est un vrai plaisir à utiliser et administrer.
Bureau
Sur le PC ça tourne du tonnerre également, j’utilise cette fois la branche edge
(bleeding rolling truc). Les versions stables (tous les 6 mois) sont sur le Rpi. Là encore tout y est et je prends plaisir à contribuer maigrement en empaquetant des logiciels le plus souvent possible.
On y retrouve tout ce qui fait le charme d’un poste linux pour une utilisation bureau. Cela va du simple gestionnaire de fenêtres aux bureaux complets. De Xorg à Wayland. Tout est là et ça marche plus que bien.
La distribution étant à l’initial prévu pour être légère et servir de base pour images docker, il faut noter que les paquets sont séparés en sous-paquets quand il le faut. Il est ainsi possible de retrouver les suffixes -doc
pour les manpages et autres exemples de configuration, -dev
pour les fichiers nécessaires au développement ou encore -openrc
pour les fichiers d’init.
La distribution s’adresse à un public de niche, aimant bidouiller et se construire un environnement sur mesure. Cependant je note que beaucoup de logiciels/librairies fonctionnent avec musl
et cela requiert de moins en moins de patchs de la part des distributions (ces derniers sont inclus en amont).
Avec des cycles de sorties de six mois, la stabilité d’utilisation est de rigueur et pour les aventuriers utilisant edge
, à ce jour je n’ai pas eu le moindre souci de casse à noter.
Alpine est une distribution que je prends plaisir à utiliser, cela me donne envie de fouiller un peu plus pour en apprendre davantage sur l’écosystème peuplant mon ordinateur tout en ayant pas à craindre un éventuel pépin majeur lors d’une mise-à-jour.