Guix 1.3 est disponible, le gestionnaire de paquets transactionnel vient avec la prise en charge de POWER9 en avant-première,
ajoute de nouvelles fonctionnalités et affine l'expérience utilisateur

Après plusieurs mois de développement, l'équipe de GNU Guix a publié cette semaine la version 1.3 du gestionnaire de paquets. GNU Guix 1.3 offre des améliorations de l'expérience de l'utilisateur en traitant les manifestes pour l'installation/la suppression de paquets multiples, une option "--with-latest" pour vérifier les derniers composants logiciels, de nouvelles améliorations de l'outil de développement, de nombreuses optimisations de performance, et le support initial de l'architecture POWER9. Avec GNU Guix 1.3, le support de l'architecture POWER9 est traité comme un aperçu technique.

GNU Guix est un gestionnaire de paquets transactionnel et une distribution avancée du système GNU. Guix peut être utilisé au-dessus de n'importe quel OS utilisant le noyau Hurd ou Linux, ou peut être utilisé comme une distribution autonome de système d'exploitation pour les machines i686, x86_64, ARMv7, AArch64 et POWER9. En plus des fonctionnalités standards de gestion des paquets, Guix supporte les mises à jour et les retours en arrière transactionnels, la gestion des paquets non privilégiés, les profils par utilisateur et la collecte des déchets.

Nom : test-pilot.png
Affichages : 1025
Taille : 145,1 Ko

Utilisé comme une distribution GNU/Linux autonome, Guix offre une approche déclarative et sans état de la gestion de la configuration du système d'exploitation. Guix est hautement personnalisable et modifiable grâce aux interfaces de programmation Guile et aux extensions du langage Scheme. Cette nouvelle version intègre un certain nombre de changements et fait plusieurs ajouts. Du côté des paquets, environ deux mille paquets ont été ajoutés ce cycle, y compris Xfce 4.16, GCC 10.3, GNU Glibc 2.31. Le catalogue de services Guix supporte aussi maintenant WireGuard.

La version est livrée avec des images d'installation ISO-9660, une image de machine virtuelle, et avec des tarballs pour installer le gestionnaire de paquets au-dessus de votre distro GNU/Linux, soit à partir des sources ou des binaires. Les utilisateurs de Guix peuvent mettre à jour en exécutant guix pull. Voici l'essentiel de Guix 1.3.

Expérience utilisateur

Une caractéristique distinctive de Guix est son support pour le déploiement déclaratif : au lieu d'exécuter un tas de commandes guix install et guix remove, vous exécutez guix package --manifest=manifest.scm, où manifest.scm liste le logiciel que vous voulez installer dans un extrait qui ressemble à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
;; This is 'manifest.scm'.
(specifications->manifest
  (list "emacs" "guile" "gcc-toolchain"))
En faisant cela, vous installez exactement les paquets listés. Vous pouvez placer ce fichier sous contrôle de version et le partager avec d'autres, ce qui est pratique, selon l'équipe. Jusqu'à présent, il fallait écrire le manifeste à la main - ce qui n'est pas insurmontable, mais reste une barrière pour quelqu'un qui souhaite migrer vers le modèle déclaratif. La nouvelle commande guix package --export-manifest (et son option complémentaire --export-channels) produit un manifeste basé sur le contenu d'un profil existant.

Cela facilite la transition du modèle "impératif" classique, où vous exécutez guix install selon les besoins, vers le modèle déclaratif plus formel. Selon l'équipe, c'était attendu depuis longtemps. Les utilisateurs qui aiment exécuter les derniers et meilleurs éléments du patrimoine logiciel libre devraient apprécier la nouvelle option de transformation des paquets --with-latest.

Utilisant le même code que guix refresh, cette option recherche la dernière version amont d'un paquet, la récupère, l'authentifie et la construit. Ceci est utile dans les cas où la nouvelle version n'est pas encore empaquetée dans Guix. Par exemple, la commande ci-dessous, si elle est exécutée aujourd'hui, va (tenter) d'installer QEMU 6.0.0 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ guix install qemu --with-latest=qemu 
The following package will be upgraded:
   qemu 5.2.0 → 6.0.0

Starting download of /tmp/guix-file.eHO6MU
From https://download.qemu.org//qemu-6.0.0.tar.bz2...
 …0.tar.bz2  123.3MiB                                                                                                                      28.2MiB/s 00:04 [##################] 100.0%

Starting download of /tmp/guix-file.9NRlvT
From https://download.qemu.org//qemu-6.0.0.tar.bz2.sig...
 …tar.bz2.sig  310B                                                                                                                         1.2MiB/s 00:00 [##################] 100.0%
gpgv: Signature made Thu 29 Apr 2021 09:28:25 PM CEST
gpgv:                using RSA key CEACC9E15534EBABB82D3FA03353C9CEF108B584
gpgv: Good signature from "Michael Roth <michael.roth@amd.com>"
gpgv:                 aka "Michael Roth <mdroth@utexas.edu>"
gpgv:                 aka "Michael Roth <flukshun@gmail.com>"
The following derivation will be built:
   /gnu/store/ypz433vzsbg3vjp5374fr9lhsm7jjxa4-qemu-6.0.0.drv

…
Il y a un avertissement évident : le fonctionnement n'est pas garanti. Si la nouvelle version a un système de construction différent, ou si elle nécessite des dépendances supplémentaires par rapport à la version actuellement empaquetée, le processus de construction échouera. Cependant, cela offre aux utilisateurs une flexibilité supplémentaire qui peut parfois être pratique. Pour les développeurs, c'est aussi un moyen rapide de vérifier si un paquet donné se construit avec succès avec la dernière version d'une de ses dépendances.

Plusieurs changements ont été apportés ici et là pour améliorer l'expérience des utilisateurs. Par exemple, un nouveau niveau --verbosity a été ajouté. Par défaut (--verbosity=1), moins de détails sur les téléchargements sont imprimés, ce qui correspond aux attentes de la plupart des utilisateurs. Une autre amélioration pratique concerne les suggestions lors de fautes de frappe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$ guix package --export-manifests
guix package: error: export-manifests: unrecognized option
hint: Did you mean `export-manifest'?

$ guix remve vim
guix: remve: command not found
hint: Did you mean `remove'?

Try `guix --help' for more information.
Selon l'équipe, les personnes qui configurent le déchargement de la compilation par SSH devraient apprécier le processus simplifié, où l'exécutable guile n'a plus besoin d'être dans PATH, avec les paramètres appropriés de GUILE_LOAD_PATH, sur les machines cibles. Au lieu de cela, le déchargement canalise maintenant toutes ses opérations à travers guix repl. Le manuel de référence de Guix est entièrement traduit en français, allemand et espagnol, avec des traductions préliminaires en russe, chinois et autres langues.

Guix lui-même est entièrement traduit en français, allemand et slovaque, et partiellement traduit dans presque vingt autres langues. Les traductions sont maintenant gérées par Weblate.

Outils pour les développeurs

En ce qui concerne les développeurs, guix import est livré avec un nouvel importateur récursif Go, qui peut créer des définitions de paquet ou des modèles de celles-ci pour des ensembles entiers de paquets Go. La commande guix import crate, pour les paquets Rust, respecte désormais le "versionnage sémantique" lorsqu'elle est utilisée en mode récursif. La commande guix refresh inclut maintenant "updaters": sourceforge, pour le code hébergé sur SourceForge, et generic-html qui, comme son nom l'indique, est une mise à jour générique qui fonctionne en scannant les pages d'accueil des paquets.

D'après l'équipe, cela améliore grandement la couverture de guix refresh. Les empaqueteurs et les développeurs devraient a aussi apprécier la nouvelle option de transformation de paquet --with-patch, qui fournit un moyen de construire un groupe de paquets avec un patch appliqué à un ou plusieurs d'entre eux. Basé sur l'API d'image du système Guix introduite dans la v1.2.0, les commandes guix system vm-image et guix system disk-image sont remplacées par une commande unifiée guix system image.

Cela apporte des avantages en termes de performances ; alors qu'une machine virtuelle était auparavant impliquée dans la production des artefacts d'image, les bits de bas niveau sont maintenant gérés par l'outil genimage dédié. Un autre avantage est que le format qcow2 est maintenant compressé, ce qui supprime la nécessité de compresser manuellement les images en les posttraitant avec xz ou un autre compresseur.

Enfin, l'introduction du chemin de recherche GUIX_EXTENSIONS_PATH Guix devrait permettre aux extensions Guix, telles que le Guix Workflow Language, d'avoir leurs modules Guile automatiquement découverts, simplifiant ainsi leurs déploiements.

Améliorations des performances

L'équipe a expliqué ici que l'installation de substituts (téléchargement de binaires préconstruits) est devenue plus rapide. Ceci est en partie dû à l'utilisation opportuniste de la compression zstd, qui a un débit de décompression élevé. Le démon et guix publish supportent zstd comme une méthode de compression supplémentaire, à côté de gzip et lzip. Un autre changement qui peut aider à récupérer les substituts plus rapidement est la découverte du serveur de substitution local.

La nouvelle option --discover de guix-daemon lui demande de découvrir et d'utiliser les serveurs de substitution sur le réseau local (LAN) annoncés avec les protocoles mDNS/DNS-SD, en utilisant Avahi. De même, guix publish a une nouvelle option --advertise pour s'annoncer sur le LAN. Sur le système Guix, vous pouvez exécuter herd discover guix-daemon on pour activer temporairement la découverte, ou vous pouvez l'activer dans la configuration de votre système.

L'utilisation opportuniste de serveurs de substitution voisins serait entièrement sûre, grâce à des constructions reproductibles. Dans d'autres nouvelles, guix system init a été optimisé, ce qui contribue à rendre l'installation du système Guix plus rapide. Sur certaines machines avec des ressources limitées, la construction des modules Guix est une opération coûteuse. Une nouvelle procédure, channel-with-substitutes-available du module (guix ci), peut maintenant être utilisée pour tirer Guix vers le dernier commit qui a déjà été construit par la ferme de construction.

Support de POWER9, paquets, services, et plus

Le support POWER9 est maintenant disponible en tant qu'aperçu technologique. L'équipe prévient qu'il n'y a pas encore beaucoup de substituts binaires POWER9 disponibles, en raison de la capacité POWER9 limitée. Dans le cadre de Guix 1.3, environ 2 000 paquets ont été ajoutés, pour un total de plus de 17 000 paquets ; 3 100 ont été mis à jour. La distribution est livrée avec GNU libc 2.31, GCC 10.3, Xfce 4.16.0, Linux-libre 5.11.15, LibreOffice 6.4.7.2 et Emacs 27.2, pour n'en citer que quelques-uns.

Parmi les nombreux changements de paquets, l'un d'entre eux se distingue par le nouveau bootstrap OCaml : le paquet OCaml est désormais entièrement construit à partir des sources via camlboot. Les mises à jour des paquets incluent également Cuirass 1.0. Le catalogue de services a également vu de nouveaux ajouts tels que wireguard, syncthing, ipfs, un service simplifié et plus pratique pour Cuirass, et plus encore. Vous pouvez rechercher des services via la fonction de recherche du système guix.

Source : Guix 1.3

Et vous ?

Que pensez-vous des changements intervenus dans Guix 1.3 ?

Voir aussi

GNU Guix, le gestionnaire de paquets transactionnel, est disponible en version 1.0 et compte faciliter les déploiements de paquets sur GNU/Linux

Windows 10 : Microsoft annonce la disponibilité d'un gestionnaire de paquets en ligne de commande officiel, inspiré de ceux sous Linux et utile aux développeurs pour la gestion de leurs outils

Microsoft adopte l'outil révolutionnaire eBPF du noyau Linux et veut l'étendre pour Windows en exploitant les projets open source existants, comme IOVisor uBPF et PREVAIL