URL: https://linuxfr.org/news/gnu-guix-1-4-0-est-publie Title: GNU Guix 1.4.0 est publiĂ© Authors: roptat palm123 et Ysabeau đ§¶ Date: 2022ćčŽ12æ19æ„T17:35:13+01:00 License: CC By-SA Tags: guix et sortie_version Score: 35 [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/guix.fr.html#Gestion-de-paquets), 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/guix.fr.html#Invoquer-guix-pack) 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/guix.fr.html#Invoquer-guix-time_002dmachine). 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. 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/2022/gnu-guix-1.4.0-released/) [Manuel de rĂ©fĂ©rence en français](https://guix.gnu.org/manual/fr/guix.fr.html) ---- Nous avons le plaisir de vous annoncer la sortie de GNU Guix version 1.4.0 ! La nouvelle version propose des images dâinstallation ISO-9660, une image de machine virtuelle et des archives qui vous permettent dâinstaller le gestionnaire de paquets sur votre distribution GNU/Linux, que ce soit Ă partir des sources ou des binaires. Pour obtenir ces fichiers, consultez la [page des tĂ©lĂ©chargements](https://guix.gnu.org/en/download). Si vous utilisez dĂ©jĂ Guix vous pouvez le mettre Ă jour en exĂ©cutant la commande `guix pull`. Il sâest Ă©coulĂ© 18 mois depuis la [version prĂ©cĂ©dente](https://linuxfr.org/news/gnu-guix-1-3-0-est-publie). Cela reprĂ©sente un long intervalle de temps et reflĂšte le fait quâen tant que *rolling release*, Guix permet aux utilisateurs et utilisatrices de recevoir en permanence les nouvelles fonctionnalitĂ©s et les mises Ă jour en exĂ©cutant la commande `guix pull`. Mais voyons les choses en face : cela montre Ă©galement un domaine dans lequel nous pourrions et devrions collectivement amĂ©liorer nos processus. Au cours de cette pĂ©riode, Guix a reçu environ 29 000 commits de 453 personnes, comprenant de nouvelles fonctionnalitĂ©s importantes dont nous allons parler. Le projet a Ă©galement [changĂ© de mainteneurs](https://guix.gnu.org/en/blog/2022/gnu-guix-maintainer-rotation/), structurĂ© la coopĂ©ration en crĂ©ant des [Ă©quipes](https://guix.gnu.org/manual/en/html_node/Teams.html), et [cĂ©lĂ©brĂ© son dixiĂšme anniversaire](https://guix.gnu.org/en/blog/2022/wrapping-up-ten-years-of-guix-in-paris/) ! [](https://guix.gnu.org/static/blog/img/gnu-guix-a-frogs-dream.jpg)> _Illustration de Luis Felipe, publiĂ©e sous licence CC-BY-SA 4.0._ Cet article propose de mettre en lumiĂšre tout le travail qui a abouti Ă cette publication. Et oui, il sâagit sans doute des notes de version les plus longues de lâhistoire de Guix, alors installez-vous confortablement, dĂ©tendez-vous et profitez de la lecture.> Bonus ! Voici un [chiptune](https://opengameart.org/sites/default/files/Departure.ogg) ([de Trevor Lentz](https://opengameart.org/content/departure), sous licence CC-BY-SA 3.0) que notre illustrateur Luis Felipe recommande dâĂ©couter avant dâaller plus loin. # AmĂ©lioration de la gestion des environnements logiciels Lâun des points forts de Guix est la gestion des **environnements logiciels**. La commande `guix environment` a Ă©tĂ© conçue Ă cet effet, mais elle souffrait dâune interface peu ergonomique. Elle est [maintenant remplacĂ©e par `guix shell`](https://guix.gnu.org/en/blog/2021/from-guix-environment-to-guix-shell/), bien que nous nous soyons engagĂ©s Ă garder `guix environment` jusquâau 1er mai 2023 au moins. `guix shell` est un outil pratique pour le dĂ©veloppement, mais il est Ă©galement utile si vous souhaitez essayer un logiciel sans pour autant lâinstaller de maniĂšre dĂ©finitive dans votre profil avec `guix install`. Disons que vous voulez jouer Ă [SuperTuxKart](https://supertuxkart.net) mais que vous prĂ©fĂ©rez ne pas lâavoir dans votre profil parce que, bon, câest un ordinateur portable professionnel. Voici comment vous pourriez le lancer, aprĂšs que Guix lâa rĂ©cupĂ©rĂ© si nĂ©cessaire : ``` guix shell supertuxkart -- supertuxkart ``` Outre son interface plus simple, `guix shell` amĂ©liore significativement les performances avec son cache. Il simplifie Ă©galement le processus de dĂ©veloppement en dĂ©tectant automatiquement les fichiers `guix.scm` et `manifest.scm` prĂ©sents dans un rĂ©pertoire. Glissez-en un dans votre projet et les autres membres de lâĂ©quipe de dĂ©veloppement peuvent commencer Ă travailler en exĂ©cutant simplement `guix shell`, sans argument. Au fait, lâoption `--export-manifest` vous permet de dĂ©marrer en « convertissant » les arguments de la ligne de commande en un manifeste. [En apprendre plus sur `guix shell` dans le manuel](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-shell.html). Une autre innovation de `guix shell` est l'**Ă©mulation facultative du standard de la hiĂ©rarchie du systĂšme de fichiers (FHS)**. La [FHS](https://refspecs.linuxfoundation.org/fhs.shtml) spĂ©cifie les emplacements des diffĂ©rentes catĂ©gories de fichiers : `/bin` pour les binaires des commandes essentielles, `/lib` pour les bibliothĂšques, etc. Le [dĂ©pĂŽt](https://guix.gnu.org/manual/fr/html_node/Le-depot.html) de Guix lâempĂȘche de respecter la FHS, ce qui peut empĂȘcher les utilisatrices et les utilisateurs dâexĂ©cuter des programmes qui supposent le respect de la FHS. Le nouveau drapeau `--emulate-fhs` (ou `-F`) de `guix shell` combinĂ© Ă lâoption `--container` permet de crĂ©er un environnement de conteneur qui respecte la FHS. Cette fonctionnalitĂ© est illustrĂ©e au mieux par cet exemple, oĂč la commande `ls` du paquet `coreutils` apparaĂźt directement sous `/bin`, comme si nous Ă©tions sur un systĂšme FHS comme Debian : ``` $ guix shell -CF coreutils -- /bin/ls -1p / bin/ dev/ etc/ gnu/ home/ lib/ lib64 proc/ sbin/ sys/ tmp/ usr/ ``` **Guix Home** est une autre nouvelle fonctionnalitĂ© importante. En rĂ©sumĂ©, elle applique la philosophie dĂ©clarative du systĂšme Guix Ă votre *environnement personnel* en vous donnant la possibilitĂ© de dĂ©clarer tous ses diffĂ©rents aspects (les fichiers de configuration (« _dot files_ »), les services et les paquets) et de les [instancier dans votre rĂ©pertoire `$HOME` ou dans un conteneur](https://guix.gnu.org/en/blog/2022/keeping-ones-home-tidy/). Si vous maintenez dĂ©jĂ vos fichiers de configuration sous contrĂŽle de version ou si vous voulez les garder sous contrĂŽle pour ne pas avoir Ă passer des jours ou des semaines Ă les reconfigurer la prochaine fois que vous changez d'ordinateur portable, c'est l'outil qu'il vous faut. Consultez [cette excellente introduction](https://10years.guix.gnu.org/video/an-introduction-to-guix-home/) que David Wilson a donnĂ©e pendant la cĂ©lĂ©bration des dix ans de Guix et [apprenez-en plus sur Guix Home dans le manuel](https://guix.gnu.org/manual/fr/html_node/Declarer-l_0027environnement-personnel.html). Les [**options de transformation de paquet**](https://guix.gnu.org/manual/fr/html_node/Options-de-transformation-de-paquets.html) vous donnent un contrĂŽle prĂ©cis sur la maniĂšre dont les paquets sont construits. La nouvelle option `--tune` permet de rĂ©gler les paquets **pour une micro-architecture du CPU spĂ©cifique**. Cela vous [permet dâutiliser les nouvelles instructions « une instruction, plusieurs donnĂ©es » (SIMD)](https://hpc.guix.info/blog/2022/01/tuning-packages-for-a-cpu-micro-architecture/), comme AVX-512 sur les CPU AMD/Intel rĂ©cents, ce qui peut reprĂ©senter une diffĂ©rence importante pour certaines tĂąches comme les calculs dâalgĂšbre linĂ©aire. Depuis la version 1.3.0, le projet a commencĂ© Ă maintenir [**une ferme de construction alternative**](https://guix.gnu.org/en/blog/2021/substitutes-now-also-available-from-bordeauxguixgnuorg/) sur `https://bordeaux.guix.gnu.org`. Elle est indĂ©pendante de la ferme de construction sur `ci.guix.gnu.org` (donnĂ©e et hĂ©bergĂ©e par le *Max DelbrĂŒck Center for Molecular Medicine* Ă Berlin en Allemagne), ce qui prĂ©sente deux avantages : elle nous permet de [tester les substituts fournis par les deux systĂšmes](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-challenge.html), et elle fournit une redondance en cas de panne de lâune de ces deux fermes. Guix est maintenant configurĂ© par dĂ©faut pour rĂ©cupĂ©rer ses substituts auprĂšs de nâimporte laquelle de ces deux fermes de construction. De plus, un [bogue](https://issues.guix.gnu.org/57978) a Ă©tĂ© corrigĂ©, ce qui assure que Guix puisse passer de lâune Ă lâautre en cas de problĂšme avec la premiĂšre. Les personnes qui apprĂ©cient les dĂ©ploiements dĂ©claratifs de flottes entiĂšres de machines seront sĂ»rement ravis de la nouvelle [option **`--execute` de `guix deploy`**](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-deploy.html). # Une distribution plus robuste La distribution elle-mĂȘme a connu beaucoup de changements. Tout dâabord, l'**installateur du systĂšme Guix** a reçu un certain nombre de corrections de bogues et il inclut maintenant un nouveau mĂ©canisme qui vous permet de rapporter automatiquement les informations de dĂ©bogage utiles en cas de crash. Cela aidera lâĂ©quipe de dĂ©veloppement Ă sâoccuper des bogues qui arrivent avec les configurations inhabituelles. Le temps de **dĂ©marrage des programmes a Ă©tĂ© rĂ©duit** grĂące Ă [un nouveau cache de lâĂ©diteur des liens dynamiques par application](https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with-a-loader-cache/), qui a considĂ©rablement rĂ©duit le nombre dâappels Ă `stat` et `open` causĂ©s par la recherche des bibliothĂšques partagĂ©es (nous sommes heureux que ce changement en ait [inspirĂ©](https://fzakaria.com/2022/09/12/making-runpath-redundant-for-nix.html) [dâautres](https://stoppels.ch/2022/08/04/stop-searching-for-shared-libraries.html)). Guix System utilise dĂ©sormais la [**version 0.9 de GNU Shepherd**](https://www.gnu.org/software/shepherd) qui corrige des dĂ©fauts, amĂ©liore la journalisation et ajoute des fonctionnalitĂ©s telles que lâactivation des services Ă la maniĂšre de systemd ou celle dâinetd. La nouvelle [sous-commande `guix system edit`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-system.html) fournit Ă©galement un nouveau moyen dâinspecter les services, complĂ©tant ainsi `guix system search` et `guix system extension-graph`. Il y a 15 [**nouveaux services systĂšmes**](https://guix.gnu.org/manual/fr/html_node/Services.html) parmi lesquels choisir, dont [Jami](https://guix.gnu.org/manual/fr/html_node/Services-de-telephonie.html), [Samba](https://guix.gnu.org/manual/fr/html_node/Services-Samba.html), [fail2ban](https://guix.gnu.org/manual/fr/html_node/Services-divers.html#Service-Fail2Ban), et [Gitile](https://guix.gnu.org/manual/fr/html_node/Services-de-controle-de-version.html#Service-Gitile) font partie. Une nouvelle interface est disponible pour [**dĂ©clarer lâespace dâĂ©change**](https://guix.gnu.org/manual/fr/html_node/Espace-d_0027echange.html) dans la configuration des systĂšmes dâexploitation. Cette interface est plus expressive et flexible que ce qui Ă©tait disponible auparavant. De mĂȘme, lâinterface permettant de dĂ©clarer [**la configuration rĂ©seau statique**](https://guix.gnu.org/manual/fr/html_node/Configuration-du-reseau.html) a Ă©tĂ© retravaillĂ©e. Sur GNU/Linux, elle vous permet de faire Ă peu prĂšs la mĂȘme chose que la commande `ip`, mais de maniĂšre dĂ©clarative et avec des vĂ©rifications statiques pour Ă©viter de dĂ©ployer des configurations manifestement incorrectes. [](https://guix.gnu.org/static/blog/img/gnome-42.png) Plus de **5 300 paquets ont Ă©tĂ© ajoutĂ©s** pour un total de prĂšs de 22 000 paquets, ce qui fait de Guix lâune des 10 distributions les plus grosses [dâaprĂšs Repology](https://repology.org/). Parmi les nouveaux paquets et les mises Ă jour les plus notables, **GNOME 42** est maintenant disponible. KDE nâest pas encore lĂ mais des dizaines de paquets KDE ont Ă©tĂ© ajoutĂ©s et nous en rapproche. Qt 6 est aussi disponible. La distribution propose aussi GCC 12.2.0, GNU libc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2 et Emacs 28.2 (avec la prise en charge de la compilation Ă la volĂ©e !). Entre autres nouvelles, motivĂ©s par le fait que Python 2 a officiellement atteint sa « fin de vie » en 2020, plus de 500 **paquets Python 2** ont Ă©tĂ© supprimĂ©s (ceux dont le nom commence par `python2-`). Cela comprend quelques « poids lourds » comme `python2-numpy` ou `python2-scipy`. Si vous en avez encore besoin, vous avez deux possibilitĂ©s : utiliser [`guix time-machine`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-time_002dmachine.html) pour revenir Ă un commit plus ancien qui contient les paquets dont vous avez besoin, ou utiliser le canal [Guix-Past](https://gitlab.inria.fr/guix-hpc/guix-past) pour construire certains de ces anciens paquets dans un environnement rĂ©cent. Le calcul scientifique est un domaine oĂč cela pourrait sâavĂ©rer utile. En plus de cela, le site web propose un [**nouveau navigateur de paquets**](https://packages.guix.gnu.org). Enfin ! Entre autres choses, ce navigateur de paquets propose des URL stables comme `https://packages.guix.gnu.org/packages/PAQUET`. Le [fichier `NEWS`](https://git.savannah.gnu.org/cgit/guix.git/tree/NEWS?h=version-1.4.0) liste des changements notables supplĂ©mentaires et des corrections de bogues qui pourraient vous intĂ©resser. # Plus de documentation Comme pour les versions prĂ©cĂ©dentes, nous avons travaillĂ© sur la documentation pour rendre Guix plus abordable. Nous avons rĂ©digĂ© et amĂ©liorĂ© des sections de type « comment faire », telles que : - [« Ăcrire un manifeste »](https://guix.gnu.org/manual/fr/html_node/Ecrire-un-manifeste.html) - [« RĂ©pliquer Guix »](https://guix.gnu.org/manual/fr/html_node/Repliquer-Guix.html#R_00e9pliquer-Guix) - [« Utiliser TeX et LaTeX »](https://guix.gnu.org/manual/fr/html_node/Utiliser-TeX-et-LaTeX.html#Utiliser-TeX-et-LaTeX) - [« Corriger les problĂšmes du systĂšme »](https://guix.gnu.org/manual/fr/html_node/Corriger-les-problemes-du-systeme.html) - [« Architectures externes »](https://guix.gnu.org/manual/fr/html_node/Architectures-externes.html) - [« Utiliser Guix de maniĂšre interactive »](https://guix.gnu.org/manual/fr/html_node/Utiliser-Guix-de-maniere-interactive.html) Le [livre de recettes](https://guix.gnu.org/cookbook/fr/html_node/) continue lui aussi de recevoir de nouvelles entrĂ©es, consultez-le ! Le manuel de rĂ©fĂ©rence de Guix est **entiĂšrement traduit** en [français](https://guix.gnu.org/manual/fr/html_node/) et en [allemand](https://guix.gnu.org/manual/de/html_node/) ; 70% est disponible en [espagnol](https://guix.gnu.org/manual/es/html_node/) et il y a des [traductions initiales](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 langues. Guix lui-mĂȘme est entiĂšrement traduit en français, avec des traductions presque complĂštes en portugais brĂ©zilien, en allemand, en slovaque et en espagnol, et des traductions partielle dans [presque vingt autres langues](https://translate.fedoraproject.org/projects/guix/guix/). Consultez le manuel pour [apprendre Ă aider](https://guix.gnu.org/manual/fr/html_node/Traduire-Guix.html) ou cette [visite guidĂ©e par le traducteur en chef Julien Lepiller](https://10years.guix.gnu.org/video/let-s-translate-guix-together-/) ! # Soutenir la reproductibilitĂ© sur le long-terme Une fonctionnalitĂ© importante de Guix est sa prise en charge des dĂ©ploiements logiciels reproductibles. Il y a plusieurs aspects Ă cela, lâun dâentre eux Ă©tant la capacitĂ© Ă rĂ©cupĂ©rer le code source [Ă partir de lâarchive de Software Heritage](https://guix.gnu.org/en/blog/2019/connecting-reproducible-deployment-to-a-long-term-source-code-archive/). Guix Ă©tait dĂ©jĂ capable de rĂ©cupĂ©rer le code source de paquets Ă partir de Software Heritage comme solution de repli, mais avec la version 1.4.0 **le code source des canaux Guix est Ă©galement automatiquement rĂ©cupĂ©rĂ© Ă partir de Software Heritage** si leur URL originale nâest plus joignable. De plus, Guix est maintenant **capable de rĂ©cupĂ©rer et de restaurer des archives de code source** comme les fichiers `.tar.gz`. Software Heritage archive le _contenu_ des archives, mais pas les archives elles-mĂȘmes. Cela crĂ©ait une inadĂ©quation entre Guix et Software Heritage, dâautant plus que la majoritĂ© des [dĂ©finitions de paquets](https://guix.gnu.org/manual/fr/html_node/Definition-des-paquets.html) utilisent des archives et sâattendent Ă pouvoir vĂ©rifier lâempreinte _de lâarchive elle-mĂȘme_. Pour combler cet Ă©cart, Timothy Sample a dĂ©veloppĂ© [Disarchive](https://ngyro.com/software/disarchive.html), un outil qui peut (1) _extraire_ les mĂ©tadonnĂ©es des archives et (2) _assembler_ les mĂ©tadonnĂ©es extraites et les fichiers eux-mĂȘmes pour reconstruire une archive, comme indiquĂ© dans le diagramme ci-dessous. [](https://guix.gnu.org/static/blog/img/disarchive-swh-diagram.png) Le projet Guix a configurĂ© une [tĂąche dâintĂ©gration continue](https://ci.guix.gnu.org/jobset/disarchive) pour construire une _base de donnĂ©es Disarchive_, disponible sur [disarchive.gnu.org](https://disarchive.guix.gnu.org). La base de donnĂ©es inclut les mĂ©tadonnĂ©es pour toutes les archives utilisĂ©es par les paquets. Lorsquâune archive de code source disparait, Guix rĂ©cupĂšre maintenant de maniĂšre transparente les mĂ©tadonnĂ©es de lâarchive depuis la base Disarchive, puis il rĂ©cupĂšre le contenu des fichiers Ă partir de Software Heritage et reconstruit lâarchive initiale. Au moment de la publication dâun « [Rapport sur la prĂ©servation de Guix](https://ngyro.com/pog-reports/latest/) » publiĂ© en janvier 2022, presque 75 % des fichiers `.tar.gz` utilisĂ©s par les paquets sont maintenant complĂštement archivĂ©s avec Disarchive et Software Heritage. ExĂ©cuter la commande `guix lint -c archival PKG` vous donnera le statut dâarchivage de `PKG`. Vous pouvez en apprendre plus dans le [rapport annuel de Guix-HPC](https://hpc.guix.info/blog/2022/02/guix-hpc-activity-report-2021/). Câest une avancĂ©e importante qui permet, pour la premiĂšre fois, de disposer dâun outil capable de redĂ©ployer des environnements logiciels passĂ©s tout en maintenant la connexion entre le code source et les binaires. # Lots applicatifs et images systĂšme La [commande `guix pack`](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-pack.html) qui crĂ©e des « **lots applicatifs** » (des images dâapplications indĂ©pendantes) a Ă©tĂ© Ă©tendue : `guix pack -f deb` crĂ©e un paquet `.deb` indĂ©pendant qui peut ĂȘtre installĂ© sur Debian et les distributions dĂ©rivĂ©es. Le nouveau drapeau `--symlink` lui fait crĂ©er des liens symboliques dans lâimage. Au niveau du systĂšme, la [**nouvelle commande `guix system image`**](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-system.html#index-image_002c-creer-des-images-disques) remplace quelques sous-commandes existantes de `guix system` par un nouveau point dâentrĂ©e unique pour construire des images de tous types : des images disques brutes, des images de machines virtuelles au format QCOW2, des images CD ou DVD ISO8660, des images Docker et mĂȘme [des images pour le sous-systĂšme Linux de Microsoft Windows (WSL2)](https://othacehe.org/wsl-images-for-guix-system.html). Elle propose une [interface de haut-niveau](https://guix.gnu.org/manual/fr/html_node/Images-systemes.html) qui vous permet de dĂ©clarer le type dâimage que vous voulez : le format de stockage, les partitions, et Ă©videmment le systĂšme dâexploitation pour cette image. Pour faciliter son utilisation, des types dâimage prĂ©dĂ©finis sont disponibles : ``` $ guix system image --list-image-types Les types dâimage disponibles sont : - rock64-raw - pinebook-pro-raw - pine64-raw - novena-raw - hurd-qcow2 - hurd-raw - raw-with-offset - iso9660 - efi32-raw - wsl2 - uncompressed-iso9660 - efi-raw - docker - qcow2 - tarball ``` Cela comprend [par exemple](https://guix.gnu.org/manual/fr/html_node/Modules-des-images.html) un type dâimage pour les machines Pine64 et pour le systĂšme dâexploitation GNU/Hurd. Par exemple, voici comment vous pourriez crĂ©er une image de machine virtuelle QCOW2 utilisable avec QEMU : ``` guix system image -t qcow2 my-operating-system.scm ``` ... oĂč `my-operating-system.scm` contient une [dĂ©claration de systĂšme dâexploitation](https://guix.gnu.org/manual/fr/html_node/Utiliser-le-systeme-de-configuration.html). De mĂȘme, voici comment vous pourriez crĂ©er, sur votre machine x86_64, une image pour votre Pine64, prĂȘte Ă ĂȘtre transfĂ©rĂ©e Ă une carte SD ou un pĂ©riphĂ©rique de stockage similaire Ă partir duquel la carte pourra dĂ©marrer : ``` guix system image -t pine64-raw my-operating-system.scm ``` Le type dâimage `pine64-raw` spĂ©cifie que les logiciels de lâimage sont en fait *compilĂ©s de maniĂšre croisĂ©e* vers `aarch64-linux-gnu`, câest-Ă -dire GNU/Linux sur un CPU AArch64, avec la [variante U-Boot](https://packages.guix.gnu.org/packages/u-boot-pine64-lts) appropriĂ©e comme chargeur dâamorçage. Il nây a plus de limite ! # Une meilleure expĂ©rience dâempaquetage Un changement important que les empaqueteurs et empaqueteuses remarqueront immĂ©diatement est la [**simplification des paquets**](https://guix.gnu.org/en/blog/2021/the-big-change/), introduite peu aprĂšs la 1.3.0. Le changement le plus visible est que les dĂ©finitions des paquets sont dĂ©sormais plus lisibles : ```scheme (package ;; ... (inputs (list pkg-config guile-3.0))) ;đ ``` ... au lieu du vieux style baroque avec ses « Ă©tiquettes dâentrĂ©es » : ```scheme (package ;; ... (inputs `(("pkg-config" ,pkg-config) ;đ ("guile" ,guile-3.0)))) ``` La [**nouvelle commande `guix style`**](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-style.html) peut automatiquement effectuer la conversion de « lâancien » style vers le « nouveau » style dâentrĂ©es des paquets. Elle peut aussi reformater des fichiers Scheme entiers en fonction des canons stylistiques du jour, ce qui est bien pratique pour dĂ©buter avec le langage. Ce n'est que la partie visible de lâiceberg : la nouvelle [macro `modify-inputs`](https://guix.gnu.org/manual/fr/html_node/Definition-de-variantes-de-paquets.html#index-modify_002dinputs) rend la manipulation des entrĂ©es des paquets plus facile et plus claire. On peut Ă©galement utiliser des [G-expressions](https://guix.gnu.org/manual/fr/html_node/G_002dExpressions.html) par exemple dans les phases des paquets. Lisez notre [annonce prĂ©cĂ©dente](https://guix.gnu.org/en/blog/2021/the-big-change/) pour plus dâinformations. En plus de cela, le nouveau mĂ©canisme de _nettoyage des champs_ est utilisĂ© pour valider certains champs. Par exemple, il vĂ©rifie maintenant le type du champ `license` tandis que la syntaxe Texinfo de `description` et `synopsis` est validĂ©e, tout cela sans surcoĂ»t dans les cas usuels. Nous espĂ©rons que ces changements rendront plus faciles vos dĂ©buts avec lâempaquetage. La commande `guix build` a de nouveaux drapeaux, `--list-systems` et `--list-targets`, pour lister les **types de systĂšmes** (qui peuvent ĂȘtre passĂ©s Ă `--system`) et les **triplets cibles de compilation croisĂ©e** (Ă utiliser avec `--target`) pris en charge. Sous le capot, le nouveau module `(guix platform)` vous permet de dĂ©finir des « plateformes », câest-Ă -dire la combinaison dâune architecture CPU et dâun systĂšme dâexploitation, de maniĂšre abstraite. Cela unifie diverses informations qui Ă©taient prĂ©cĂ©demment Ă©parpillĂ©es. En plus de cela, les empaqueteurs et empaqueteuses peuvent maintenant [marquer comme « rĂ©glables »](https://guix.gnu.org/manual/fr/html_node/Options-de-transformation-de-paquets.html#index-paquets-reglables) des paquets qui bĂ©nĂ©ficieraient des **optimisations pour la micro-architecture CPU**, activĂ©es avec lâoption `--tune`. **Lâempaquetage pour Python** a vu dâimportants changements. DĂ©jĂ , le paquet `python` respecte maintenant la variable dâenvironnement `GUIX_PYTHONPATH` au lieu de `PYTHONPATH`. GrĂące Ă cela, Python ne rĂ©cupĂ©rera pas sans le vouloir des paquets qui ne sont pas fournis par Guix. Ensuite, le nouveau systĂšme de construction [`pyproject-build-system`](https://guix.gnu.org/manual/fr/html_node/Systemes-de-construction.html#index-pyproject_002dbuild_002dsystem) implĂ©mente [PEP 517](https://peps.python.org/pep-0517/). Cela complĂ©mente le systĂšme de construction `python-build-system` existant, et les deux pourraient finalement ĂȘtre fusionnĂ©s. Le moment le plus agrĂ©able de lâempaquetage, câest quand il arrive tout prĂȘt comme un cadeau. La [**commande `guix import`**](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-import.html) a gagnĂ© la prise en charge de plusieurs dĂ©pĂŽts de paquets amonts : `minetest` (pour les extensions du jeu Minetest), `elm` (le langage de programmation Elm), `egg` (pour CHICKEN Scheme) et `hexpm` (pour les paquets Erlang et Elixir). Les importateurs existants ont aussi bĂ©nĂ©ficiĂ© de plusieurs amĂ©liorations. La [**commande `guix refresh`**](https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-refresh.html) pour automatiquement mettre Ă jour les dĂ©finitions des paquets a un nouveau programme de mise Ă jour `generic-git`. # Essayez-la ! Il y a plusieurs façons de commencer Ă utiliser Guix : 1. Le [script dâinstallation](https://guix.gnu.org/install.sh) vous permet de rapidement installer Guix [par dessus nâimporte quelle distribution GNU/Linux](https://guix.gnu.org/manual/fr/html_node/Installation-binaire.html#Installation-binaire). 2. Vous pouvez utiliser l'[image de machine virtuelle du systĂšme](https://guix.gnu.org/manual/fr/html_node/Installer-Guix-dans-une-VM.html) avec QEMU pour dĂ©couvrir simplement le systĂšme Guix sans toucher Ă votre systĂšme. 3. Vous pouvez [installer le systĂšme Guix en tant que distribution distincte](https://guix.gnu.org/manual/fr/html_node/Installation-du-systeme.html#Installation-du-syst_00e8me). L'[installateur](https://guix.gnu.org/fr/videos/2020/system-graphical-installer/) vous guidera dans les Ă©tapes de configuration initiale. Pour voir toutes les options Ă votre disposition, 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 !