URL: https://linuxfr.org/news/alpine-linux-3-18-0 Title: Alpine Linux 3.18.0 Authors: Nils Ratusznik Benoît Sibaud et Nÿco Date: 2023-05-15T22:04:55+02:00 License: CC By-SA Tags: alpinelinux, musl et musl_libc Score: 4 Le 9 mai 2023, le projet Alpine Linux a annoncé la disponibilité d'une nouvelle version, la 3.18.0. Cette version contient un peu plus que de simples mise à jour logicielles, et n'est pas souvent abordée dans les colonnes de LinuxFr.org, alors profitons de l'actualité pour une présentation ! ---- [Site web d'Alpine Linux](https://alpinelinux.org/) [À propos de la distribution sur le site du projet](https://alpinelinux.org/about/) [Annonce de la version 3.18.0 sur le site du projet](https://alpinelinux.org/posts/Alpine-3.18.0-released.html) [Notes de version](https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.18.0) [Le projet Tiny Cloud](https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud) ---- # À 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](https://fr.wikipedia.org/wiki/GNU_C_Library), mais celle du projet [musl](https://musl.libc.org/). Ensuite, son programme d'init est [OpenRC](https://wiki.gentoo.org/wiki/Project: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](https://en.wikipedia.org/wiki/Position-independent_code#PIE) avec une [protection anti-débordement de pile](https://en.wikipedia.org/wiki/Stack_buffer_overflow)), 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](https://wiki.alpinelinux.org/wiki/Alpine_local_backup). Alpine est aussi utilisable [en environnement de bureau](https://dataswamp.org/~solene/2023-04-30-alpine-as-desktop-cheatsheet.html), 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](https://github.com/jirutka/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](https://www.openwall.com/lists/musl/2023/05/02/1) 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](https://gitlab.alpinelinux.org/alpine/tsc/-/issues/58). 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](https://pkgs.alpinelinux.org/packages?name=fail2ba*&branch=v3.18&repo=main&arch=x86_64&maintainer=), le paquet se nomme [fail2ban-pyc](https://pkgs.alpinelinux.org/package/v3.18/main/x86_64/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](https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud). Il s'agit d'une alternative légère à [Cloud-init](https://cloud-init.io/). 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.