Alpine Linux 3.18.0

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud et Nÿco. Modéré par Nÿco. Licence CC By‑SA.
42
24
mai
2023
Distribution

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

  • # Enfin TCP

    Posté par  (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  (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.

  • # Alpine c'est bon mangez en

    Posté par  (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  . Évalué à 3.

      Tu l'utilise pour quoi faire ? c'est un peu court…

      • travail quotidien bureautique, web, email ?
      • développement ?
      • sysadmin ?
      • serveur ?
      • etc.?
    • [^] # Re: Alpine c'est bon mangez en

      Posté par  (site web personnel) . Évalué à 6.

      Parmi les autres inconvénients (qui existaient en 2021, mais ont peut-être disparu depuis):

      • la lenteur des compilations. Apparemment c'est lié aux allocations mémoires faites par musl qui sont moins efficace que celles faites par la glibc. C'est un problème connu, avec des pistes de solutions (mimalloc de microsoft). Source: tests dans un docker test compilation Python
      • comparé à un système Debian, les mises à jour système sont extrêmement rapides (de mémoire, moins de 10 minutes). Par contre, il n'y a pas de vérification des configurations écrasées dans /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.