À propos
Alpine Linux est présentée par le projet comme une distribution Linux indépendante, non commerciale, à usage général, conçue pour des utilisateurs avancés qui apprécient la sécurité, simplicité l'efficience des ressources.
La distribution a plusieurs particularités notables. Tout d'abord elle utilise non pas la bibliothèque C du projet GNU, mais celle du projet musl. Ensuite, son programme d'init est OpenRC au lieu de systemd. Ces choix techniques rendent la distribution très légère (le projet annonce une installation minimale sur disque de 130 Mo de stockage, et des conteneurs pouvant n'occuper que 8 Mo).
Une autre particularité est qu'Alpine utilise son propre gestionnaire de paquets logiciels, nommé apk
. Toujours sur les paquets, le projet annonce compiler les logiciels « as Position Independent Executables (PIE) with stack smashing protection » (exécutables pouvant être placés n'importe où en mémoire avec une protection anti-débordement de pile), afin de réduire les possibilités d'exploitation.
À l'usage, la légèreté d'Alpine Linux l'a rendue populaire comme base pour des conteneurs, et des serveurs. Un usage assez intéressant est de pouvoir installer une machine uniquement en mémoire vive, la configuration et les paquets pouvant être sauvegardés. Alpine est aussi utilisable en environnement de bureau, bien que ce ne soit pas son usage le plus répandu.
Mises à jour logicielles
Parmi les mises à jour logicielles de cette Alpine 3.18, on retrouvera :
- le noyau Linux dans sa branche 6.1, la distribution ne fournit officiellement que la version LTS ;
- musl libc 1.2.4 ;
- Python 3.11 ;
- Ruby 3.2 ;
- Node.js 20.1 ;
- GNOME 44 ;
- Go 1.20 ;
- KDE Plasma 5.27 ;
- Rust 1.69 ;
- PHP 8.2 ;
- OpenSSL 3.1.
Nouveautés particulières
Côté noyau, en plus de la mise à jour, Alpine Linux met en oeuvre la signature des modules. En revanche, la vérification n'est pas imposée, permettant le chargement de modules noyau tiers via akms.
La mise à jour de la bibliothèque C musl apporte la prise en charge des requêtes DNS via TCP. Le projet musl signale que cela lève un problème de longue date qui faisait que musl était incompatible avec les serveurs de noms récursifs qui ne donnaient que des résultats partiels dans des réponses UDP tronquées.
Vous allez gagner de l'espace disque en effectuant la mise à jour ! En effet, les paquets pour les architectures ppc64le, x86, et x86_64 utilisent maintenant DT_RELR pour la liaison dynamique des objets, et le projet indique que cela réduit la taille des binaires. On parle de 5 à 8% de réduction.
Toujours dans la thématique de limiter l'espace disque occupé, les fichiers Python pré-compilés (ayant l'extension .pyc) sont maintenant déplacés dans des paquets séparés, ayant le suffixe -pyc. Par exemple pour Fail2Ban, le paquet se nomme fail2ban-pyc. Il est possible de ne pas les installer, et donc d'économiser de l'espace disque en utilisant la commande apk add !pyc
.
Enfin, Alpine Linux voit l'apparition du projet Tiny Cloud. Il s'agit d'une alternative légère à Cloud-init. Le projet revendique, par rapport à son homologue plus connu, de faire juste ce qui est nécessaire avec une faible empreinte et des dépendances minimales. Tiny Cloud fonctionne avec de nombreux fournisseurs de cloud public :
- AWS (Amazon Web Services) ;
- Azure (Microsoft Azure) ;
- GCP (Google Cloud Platform) ;
- OCI (Oracle Cloud Infrastructure).
Il dispose aussi d'un mode « NoCloud », compatible avec celui de Cloud-init, permettant de l'utiliser sur un environnement privé. Le développement de Tiny Cloud a été pensé pour fonctionner avec les images dites « cloud » d'Alpine Linux, et le projet est donc fait pour fonctionner avec OpenRC, et le système de fichiers ext4.