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 :

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.