URL: https://linuxfr.org/news/gnu-guix-1-3-0-est-publie Title: GNU Guix 1.3.0 est publié Authors: roptat tissevert, Benoît Sibaud et Ysabeau Date: 2021-05-12T15:47:07+02:00 License: CC By-SA Tags: guix Score: 3 [GNU Guix](https://guix.gnu.org/) est le gestionnaire de paquets transactionnel et une distribution perfectionnée du système GNU qui respecte la [liberté](https://www.gnu.org/distros/free-system-distribution-guidelines.fr.html) de ses utilisateurs. Guix peut s’utiliser en tant que gestionnaire de paquets sur n’importe quel système utilisant le noyau Linux ou Hurd, et peut s’utiliser comme distribution à part entière sur les machines i686, x86-64, ARMv7, AArch64 et POWER9. En plus des fonctionnalités habituelles des [gestionnaires de paquets](https://guix.gnu.org/manual/fr/html_node/Gestion-de-paquets.html), Guix permet des mises à jour et des retours en arrière transactionnels, de gérer ses paquets sans privilèges, d’utiliser plusieurs profils par utilisateur, et [d’empaqueter](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-pack.html) une collection de paquets via une archive TAR repositionnable ou une image Docker. Et tout ceci pour n’importe quel point dans le temps via [`guix time-machine`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-time_002dmachine.html). Lorsque Guix est utilisé comme distribution GNU/Linux à part entière, il permet aussi de gérer son système d’exploitation avec une approche déclarative et sans état. Guix est extrêmement personnalisable et bidouillable grâce à ses interfaces [Guile](https://www.gnu.org/software/guile) (un dialecte du langage [Scheme](http://schemers.org/)). La publication fournit des [images d’installation ISO 9660](https://guix.gnu.org/manual/fr/html_node/Installation-du-systeme.html#Installation-du-syst_00e8me), une [image pour machine virtuelle](https://guix.gnu.org/manual/fr/html_node/Installer-Guix-dans-une-VM.html) et [un script d’installation](https://guix.gnu.org/manual/fr/html_node/Installation-binaire.html#Installation-binaire) pour installer le gestionnaire de paquets sur votre distribution GNU/Linux sans interférer avec celle‑ci. Les utilisateurs de Guix peuvent mettre à jour comme d’habitude en lançant [`guix pull`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-pull.html). La suite de la dépêche est une traduction de l’annonce officielle. Le « nous » utilisé dans la dépêche renvoie à l’équipe Guix, pas aux traducteurs. ---- [Annonce officielle](https://guix.gnu.org/en/blog/2021/gnu-guix-1.3.0-released/) [Manuel en français](https://guix.gnu.org/manual/fr/html_node/) ---- ![Illustration pour commémorer la nouvelle version](https://guix.gnu.org/static/blog/img/test-pilot.png) Nous sommes heureux d’annoncer la sortie de GNU Guix version 1.3.0 ! Cette nouvelle version fournit des [images d’installation ISO 9660](https://guix.gnu.org/manual/fr/html_node/Installation-du-systeme.html#Installation-du-syst_00e8me), une [image pour machine virtuelle](https://guix.gnu.org/manual/fr/html_node/Installer-Guix-dans-une-VM.html) et des archives pour installer le gestionnaire de paquets sur votre distribution GNU/Linux, soit [à partir des sources](https://guix.gnu.org/manual/fr/html_node/Prerequis.html#Pr_00e9requis), soit [à partir des binaires](https://guix.gnu.org/manual/fr/html_node/Installation-binaire.html#Installation-binaire). Si vous utilisez déjà Guix, vous pouvez mettre à jour comme d’habitude en lançant `guix pull`. Cela fait presque six mois depuis la dernière version, pendant lesquels 212 personnes ont contribué du code et des paquets, et de nombreuses autres personnes ont contribué à d’autres tâches importantes : la revue de code, l’administration système, les traductions, la mise à jour du site Web, le mentorat à travers Outreachy, et bien d’autres ! Il y a eu plus de 8 300 _commits_ durant cette période et c’est toujours un défi de résumer toute cette activité dans les notes de version. # Expérience utilisateur Une fonctionnalité clef de Guix est sa prise en charge d’un _déploiement déclaratif_ : au lieu de lancer tout un tas de commandes `guix install` et `guix remove`, vous exécutez `guix package --manifest=manifest.scm`, où `manifest.scm` répertorie les logiciels que vous voulez voir installés sous la forme : ```scheme ;; Dans « manifest.scm ». (specifications->manifest (list "emacs" "guile" "gcc-toolchain")) ``` Cela installe exactement les paquets listés. Vous pouvez versionner ce fichier et le partager avec d’autres personnes, ce qui est pratique. Jusqu’à maintenant, il fallait écrire le manifeste à la main — rien d’insurmontable, mais tout de même une barrière pour quelqu’un voulant passer au modèle déclaratif. La [nouvelle commande `guix package --export-manifest`](http://guix.gnu.org/en/manual/fr/html_node/Invoquer-guix-package.html) (et sa comparse l’option `--export-channels`) produit un manifeste basé sur le contenu _d'un profil existant_. Cela rend très facile la transition du modèle « impératif » classique, où vous lancez `guix install` au besoin, au modèle déclaratif plus formel. Ça faisait longtemps qu’on l’attendait ! Si vous préférez utiliser les toutes dernières versions de vos logiciels libres, vous allez adorer [la nouvelle option de transformation de paquet `--with-latest`](http://guix.gnu.org/en/manual/fr/html_node/Options-de-transformation-de-paquets.html). Cette option utilise le même code que [`guix refresh`](http://guix.gnu.org/en/manual/fr/html_node/Invoquer-guix-refresh.html), pour rechercher la version la plus récente d’un paquet _à sa source_, la récupèrer, l’authentifier et la construire. C’est pratique dans le cas où la nouvelle version n’a pas encore été empaquetée pour Guix. Par exemple, la commande ci-dessous, si vous l’exécutez aujourd’hui, va essayer d’installer QEMU 6.0.0 : ``` $ guix install qemu --with-latest=qemu Le paquet suivant sera mis à jour : 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 faite le jeu. 29 avril 2021 15:28:25 EDT gpgv: avec la clef RSA CEACC9E15534EBABB82D3FA03353C9CEF108B584 gpgv: Bonne signature de « Michael Roth  » gpgv: alias « Michael Roth  » gpgv: alias « Michael Roth  » La dérivation suivante sera construite : /gnu/store/ypz433vzsbg3vjp5374fr9lhsm7jjxa4-qemu-6.0.0.drv … ``` Un avertissement évident : il n’est pas garanti que cela marche. Si la nouvelle version a un système de construction différent, ou si elle a besoin de dépendances supplémentaires par rapport à la version du paquet actuellement disponible, le processus de construction échouera. Cela vous donne quand même de la flexibilité en plus qui peut parfois s’avérer pratique. Pour le développement, c’est aussi un moyen rapide de vérifier si la construction d’un paquet donné fonctionne avec la dernière version de l’une de ses dépendances. Plusieurs changements ont été faits ici et là pour améliorer l’expérience utilisateur. Par exemple, un [nouveau niveau de verbosité](https://guix.gnu.org/manual/fr/html_node/Options-de-construction-communes.html#Options-de-construction-communes) a été ajouté pour l’option `--verbosity`. Par défaut (`--verbosity=1`), moins de détails sont affichés à propos des téléchargements, ce qui correspond mieux aux attentes de la plupart des gens. Une autre amélioration pratique, les _suggestions_ quand une coquille est détectée: ``` $ guix package --export-manifests guix package: error: export-manifests : option non reconnue conseil : Vouliez-vous dire `export-manifest' ? ``` ``` $ guix remve vim guix : remve : commande introuvable conseil : Vouliez-vous dire `remove' ? Essayez « guix --help » pour plus d’informations. ``` Si vous avez configuré le [déchargement de la construction par SSH](https://guix.gnu.org/manual/fr/html_node/Reglages-du-delestage-du-demon.html), vous pouvez vous réjouir du processus simplifié où l’exécutable `guile` n’a plus besoin d’être dans le `PATH` avec le bon réglage de `GUILE_LOAD_PATH` sur les machines cibles. À la place, le déchargement fait passer toutes ses opérations à travers `guix repl`. Le manuel de référence Guix est *entièrement traduit* en [français](https://guix.gnu.org/manual/fr/html_node/), [allemand](https://guix.gnu.org/manual/de/html_node/) et [espagnol](https://guix.gnu.org/manual/es/html_node/), avec un [début de traduction](https://translate.fedoraproject.org/projects/guix/documentation-manual/) en [russe](https://guix.gnu.org/manual/ru/html_node/), [chinois](https://guix.gnu.org/manual/zh-cn/html_node/) et d’autres langages. Guix en lui-même est entièrement traduit en français, allemand et slovaque, et partiellement traduit dans [quasiment vingt autres langues](https://translate.fedoraproject.org/projects/guix/guix/). Les traductions sont [maintenant gérées avec Weblate](https://translate.fedoraproject.org/projects/guix/), et [vous pouvez aider](https://guix.gnu.org/manual/devel/en/html_node/Translating-Guix.html) ! # Outils de développement Nous avons de bonnes nouvelles pour les gens qui font des paquets ! Premièrement, [`guix import`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-import.html) a un nouvel importateur récursif pour Go, qui peut créer des définitions ou des modèles de paquets pour des ensembles entiers de paquets Go. La nouvelle commande `guix import crate`, pour les paquets Rust, honore désormais le « versionnement sémantique » quand elle est utilisée de récursivement. La commande [`guix refresh`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-refresh.html) possède désormais de nouveaux « gestionnaires de mise à jour » : `sourceforge`, pour le code hébergé sur SourceForge, et `generic-html` qui, comme son nom l’indique, est un programme de mise à jour générique qui fonctionne en analysant les sites web des paquets. Ceci améliore grandement la couverture de `guix refresh`. Si vous écrivez des paquets ou développez, vous pourriez aussi aimer la nouvelle [option de transformation `--with-patch`](http://guix.gnu.org/en/manual/fr/html_node/Options-de-transformation-de-paquets.html), qui permet de construire un ensemble de paquets en appliquant un patch à plusieurs d’entre eux. S’appuyant sur l’[API d’image pour le système Guix](https://othacehe.org/the-guix-system-image-api.html) introduit dans la v1.2.0, les commandes `guix system vm-image` et `guix system disk-image` sont remplacées par une commande `guix system image` unifiée. Par exemple, guix system vm-image --save-provenance config.scm devient guix system image -t qcow2 --save-provenance config.scm tandis que guix system disk-image -t iso9660 gnu/system/install.scm devient guix system image -t iso9660 gnu/system/install.scm Cela amène des bénéfices en termes de performance ; alors qu’une machine virtuelle était impliquée dans la production du contenu de l’image, les aspects bas-niveau sont désormais gérés par l’outil dédié `genimage`. Un autre bénéfice est que le format `qcow2` est désormais compressé, ce qui évite d’avoir à compresser les images à la main en les post-traitant avec `xz` ou un autre compresseur. Pour en savoir plus sur la commande `guix system image`, vous pouvez vous [référer à sa documentation](https://guix.gnu.org/en/manual/fr/html_node/Invoquer-guix-system.html). Dernier point, mais non des moindres, l’introduction du chemin de recherche `GUIX_EXTENSIONS_PATH` devrait permettre aux extensions de Guix, comme le [Guix Workflow Language](https://guixwl.org/), d’avoir leurs modules Guile découverts automatiquement, ce qui simplifiera leurs déploiements. # Performance Nous espérons que vous aurez remarqué que l’installation des substituts (le téléchargement de binaires pré-construits) est devenue plus rapide, [comme nous l’expliquions il y a quelque temps](https://guix.gnu.org/en/blog/2021/getting-bytes-to-disk-more-quickly/). C’est en partie dû à l’utilisation opportuniste de la compression zstd, qui a un haut débit de décompression. Le démon et [`guix publish`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-publish.html) prennent en charge zstd en tant que méthode de compression supplémentaire, avec gzip et lzip. Un autre changement qui peut aider à récupérer des substituts plus rapidement est la _découverte de serveurs de substituts locaux_. La [nouvelle option `--discover` de `guix-daemon`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix_002ddaemon.html) lui dit de découvrir et d’utiliser les serveurs de substitut sur le réseau local (LAN) annoncés avec les protocoles mDNS et DNS-SD, par Avahi. De la même manière, `guix publish` a une [nouvelle option `--advertise`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-publish.html) pour s’annoncer sur le réseau local. À partir du système Guix, vous pouvez lancer `herd discover guix-daemon on` pour activer temporairement la découverte, ou vous pouvez [l’activer dans la configuration de votre système](https://guix.gnu.org/manual/fr/html_node/Services-de-base.html#index-guix_002dconfiguration). L’utilisation opportuniste des serveurs de substituts voisins _est parfaitement sûre_, [grâce à la reproductibilité des constructions](https://guix.gnu.org/en/blog/2017/reproducible-builds-a-status-update/). Aussi, [`guix system init` a été optimisé](https://issues.guix.gnu.org/44760#4), ce qui contribue à accélérer l’installation du système Guix. Sur certaines machines avec des ressources limitées, la construction des modules de Guix est une opération très lourde. Vous pouvez maintenant utiliser une nouvelle procédure, `channel-with-substitutes-available` du module `(guix ci)`, pour récupérer le dernier commit de Guix qui a déjà été construit par la ferme de construction. Voyez la documentation pour [un exemple](https://guix.gnu.org/manual/fr/html_node/Canaux-avec-des-substituts.html). # Prise en charge de POWER9, des paquets, des services, et plus ! La prise en charge de POWER9 est maintenant disponible en tant que « démonstrateur technique », grâce au travail acharné des personnes qui ont aidé [à porter Guix vers cette plateforme](https://guix.gnu.org/en/blog/2021/new-supported-platform-powerpc64le-linux/). Il n’y a pas encore beaucoup de substituts binaires POWER9 disponibles, à cause de la capacité limitée en POWER9 de notre ferme de construction, mais si vous n’avez pas peur de construire de nombreux paquets depuis les sources, nous serions ravis d’écouter vos retours d’expérience ! Nous avons ajouté 2 000 paquets, pour un total de [plus de 17 000 paquets](https://guix.gnu.org/fr/packages) ; nous en avons mis à jour 3 100 autres. La distribution fournit 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 dans les paquets, l’un d’entre eux sort du lot, [le nouvel amorçage d’OCaml](https://www.freelists.org/post/bootstrappable/Announcing-the-bootstrap-of-OCaml) : le paquet OCaml est maintenant complètement construit à partir des sources grâce à [camlboot](https://github.com/Ekdohibs/camlboot/). Parmi les mises à jour des paquets se trouve [Cuirass 1.0](https://guix.gnu.org/en/blog/2021/cuirass-10-released/), le service qui propulse [notre ferme de construction](https://ci.guix.gnu.org/). Nous avons aussi ajouté plusieurs services supplémentaires comme [wireguard](https://guix.gnu.org/manual/fr/html_node/Services-VPN.html#index-wireguard_002dservice_002dtype), [syncthing](https://guix.gnu.org/manual/fr/html_node/Services-reseau.html#index-syncthing), [ipfs](https://guix.gnu.org/manual/fr/html_node/Services-reseau.html#index-IPFS), [un service simplifié et plus pratique pour Cuirass](https://guix.gnu.org/manual/fr/html_node/Integration-continue.html) et plus encore ! Vous pouvez rechercher les services disponibles avec `guix system search`. Le [fichier `NEWS`](https://git.savannah.gnu.org/cgit/guix.git/tree/NEWS?h=version-1.3.0&id=a0178d34f582b50e9bdbb0403943129ae5b560ff) liste des changements importants supplémentaires et des corrections de bogues qui pourraient vous intéresser. # Essayer, c’est l’adopter ! Le [script d’installation](https://guix.gnu.org/install.sh) a été amélioré pour permettre davantage d’automatisation. Par exemple, si le temps vous manque, vous pouvez le lancer avec : # yes | ./install.sh pour installer Guix à partir des binaires sur votre système sans être interrompu par des questions ! Vous serez peut-être aussi intéressé par [l’image de démonstration en VM du système Guix](https://ftp.gnu.org/gnu/guix/guix-system-vm-image-1.3.0.x86_64-linux.qcow2) qui prend maintenant en charge l’intégration du presse-papier avec l’hôte et le redimensionnement dynamique grâce au protocole SPICE. Nous espérons que cela améliorera votre expérience utilisateur. Pour voir toutes les possibilités d’installation qui s’offrent à vous, consultez [la page de téléchargement](https://guix.gnu.org/fr/download/) et n’hésitez pas à [nous contacter](https://guix.gnu.org/fr/contact/). Amusez‑vous bien ! # Crédits Luis Felipe (illustration)