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 !
À 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.
Aller plus loin
- Site web d'Alpine Linux (304 clics)
- À propos de la distribution sur le site du projet (26 clics)
- Annonce de la version 3.18.0 sur le site du projet (22 clics)
- Notes de version (26 clics)
- Le projet Tiny Cloud (60 clics)
# Enfin TCP
Posté par Stéphane Bortzmeyer (site web personnel, Mastodon) . Évalué à 10.
Ah, musl qui sait faire du DNS sur TCP, enfin. C'était le plus gros problème que j'avais avec cette libc.
[^] # Re: Enfin TCP
Posté par Sacha Trémoureux (site web personnel) . Évalué à 3. Dernière modification le 25 mai 2023 à 18:38.
Tellement d’ennuis en prod à cause de ça…
Assez hallucinant le temps pris pour traiter cette issue, j’ai vraiment l’impression que ça a pas mal nuit à la réputation d’Alpine.
[^] # Re: Enfin TCP
Posté par Franck Routier (Mastodon) . Évalué à 1.
Oui, c'était un peu une voie sans issue… euh… sans problème ?
# Alpine c'est bon mangez en
Posté par Pierre Tramal (site web personnel) . Évalué à 5. Dernière modification le 24 mai 2023 à 19:40.
Je l'utilise depuis 2020 sans aucun souci. Rapide (surtout au niveau du gestionnaire de packages apk), légère, dépôt de package très complet et parfaitement à jour.
Inconvénients (qui peuvent être aussi des avantages pour certains): faut aimer bidouiller, et comptabilité binaire limitée car pas de glibc (même si gcompat permet de faire tourner certains softs).
Je précise que je compile mon propre noyau et que j'ai écrit mes propres scripts d'init.
[^] # Re: Alpine c'est bon mangez en
Posté par orfenor . Évalué à 3.
Tu l'utilise pour quoi faire ? c'est un peu court…
[^] # Re: Alpine c'est bon mangez en
Posté par Pierre Tramal (site web personnel) . Évalué à 5.
Un peu de tout (sauf des jeux): navigation quotidienne, gestion de document, développement, serveur…
[^] # Re: Alpine c'est bon mangez en
Posté par orfenor . Évalué à 4. Dernière modification le 25 mai 2023 à 13:25.
Merci ! ça donne envie…
Sur quel genre de bécane ?
Et comparée aux grosses distrib (debian, fedora, suse, ubuntu, mageia, etc.) ?
[^] # Re: Alpine c'est bon mangez en
Posté par Pierre Tramal (site web personnel) . Évalué à 6. Dernière modification le 25 mai 2023 à 13:28.
Sur un AMD entrée de gamme de 2014 (A8-5600K), 8 Go de RAM. Je sortais d'Arch Linux que je trouvais de plus en plus lourde (systemd et toute sa pompe, et le gestionnaire de paquet devenant lent).
Comparée aux autres distribs, je dirais: gestionnaire de paquet (apk) super rapide, paquets assez proche de l'upstream (hormis les patch pour musl quand y'a besoin), et distrib qui ne se met pas en travers de ta route si tu décides de contourner ce qu'elle a prévu pour toi.
[^] # Re: Alpine c'est bon mangez en
Posté par Psychofox (Mastodon) . Évalué à 8.
À noter que récemment, Solène Rapenne a documenté un bref aide mémoire pour installer Alpine pour une utilisation de bureau:
gemini://perso.pw/blog/articles/alpine-as-desktop-cheatsheet.gmi
https://dataswamp.org/~solene/2023-04-30-alpine-as-desktop-cheatsheet.html
[^] # Re: Alpine c'est bon mangez en
Posté par Stéphane Bortzmeyer (site web personnel, Mastodon) . Évalué à 3.
Personnellement, serveur Internet uniquement. (Et, oui, j'en suis content, ça marche tout seul.)
[^] # Re: Alpine c'est bon mangez en
Posté par srb (site web personnel) . Évalué à 6.
Parmi les autres inconvénients (qui existaient en 2021, mais ont peut-être disparu depuis):
/etc
ou de script de migration. Il est donc facile de se retrouver avec un système à réparer (et donc perdre bien plus de temps que le temps gagné lors de la migration).Bref, si AlpineLinux a de vraies originalités et points forts, il vaut mieux aussi être au courant de ce qu'on y perd.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.