Vous n'êtes pas identifié(e).
.
Il s'est écoulé près de 7 mois depuis la dernière version, au cours desquels 200 personnes ont contribué au code et aux paquets, et un certain nombre de personnes ont participé à d'autres tâches importantes - révision du code, administration du système, traduction, mise à jour du site web, mentorat de sensibilisation, etc.
Il y a eu plus de 10.200 commits dans ce laps de temps et c'est le défi de ces notes de publication de résumer toute cette activité.
Avant de poursuivre la lecture, asseyez-vous et écoutez ce morceau très spécial, « Ode to One Two Oh »
https://guix.gnu.org/audio/ode-to-one-two-oh.ogg
qui vous a été apporté par votre sympathique équipe de Guix - voir les crédits ci-dessous !
Sécurité
L'un des principaux points forts de cette version est la capacité d'authentification des canaux, ce qui fait probablement de Guix l'un des moyens les plus sûrs de fournir des systèmes d'exploitation complets aujourd'hui. C'était le chaînon manquant dans notre « chaîne d'approvisionnement en logiciels » et nous sommes heureux qu'il soit maintenant réparé. Le résultat final est que les commandes guix pull et les commandes connexes authentifient désormais de manière cryptographique le code des canaux qu'elles récupèrent ; vous ne pouvez pas, par exemple, récupérer des commandes non autorisées dans le dépôt officiel de Guix. Nous avons détaillé la conception et l'implémentation en juillet dernier. Le manuel explique ce que vous devez savoir en tant qu'utilisateur·rice et en tant qu'auteur·e de canal. Il y a aussi une nouvelle commande
qui permet d'utiliser ce mécanisme d'authentification pour les dépôts Git arbitraires !
De plus,
et
détectent maintenant les déclassements potentiels du système ou les déclassements Guix et signalent une erreur. Cela permet de s'assurer que vous ne pouvez pas être amené à déclasser le logiciel de votre système, ce qui pourrait potentiellement réintroduire des vulnérabilités exploitables dans le logiciel que vous exécutez.
Une fois ces garanties en place, nous avons ajouté un service de mise à niveau sans surveillance qui, en un mot, fait fonctionner guix pull && sudo guix system reconfigure /etc/config.scm périodiquement. Mises à jour sans surveillance et tranquillité d'esprit.
Un autre changement important du point de vue de la sécurité dont nous sommes fiers est la réduction des binary seeds à 60 MiB sur x86_64 et i686, grâce au travail inlassable sur GNU Mes, Gash, et les logiciels connexes.
Sur le même thème de la sécurité, le démon de construction et l'interface de programmation d'origine acceptent désormais de nouvelles fonctions de hachage cryptographique (en particulier SHA-3 et BLAKE2) pour les « dérivations à sortie fixe » - jusqu'à présent, nous utilisions inconditionnellement les hachages SHA256 pour le code source.
Expérience utilisateur·rice
Nous voulons que Guix soit accessible et utile à un large public et cela a été une fois de plus un principe directeur pour ce communiqué. L'installateur du système graphique et le script pour installer Guix sur une autre distribution ont tous deux reçu des corrections de bogues et des améliorations de la convivialité. Les nouveaux et nouvelles utilisateur·rice·s apprécieront le fait que l'aide de Guix donne désormais une vue d'ensemble claire des commandes disponibles, que les commandes de Guix sont moins verbeuses par défaut (elles n'affichent plus une longue liste de choses à télécharger), et que Guix pull affiche une barre de progression lorsqu'il met à jour son Git checkout. Les commandes
,
et autres commandes similaires invoquent désormais un pager automatiquement (moins par défaut), ce qui répond à un désagrément souvent signalé.
Les performances se sont améliorées à plusieurs niveaux. L'utilisation du nouveau « compilateur de base » qui a atterri dans Guile 3.0.4 permet de réduire les temps de construction de Guix lui-même, ce qui signifie que l'extraction de Guix est beaucoup moins gourmande en ressources. Les performances se sont améliorées dans plusieurs autres domaines, et d'autres travaux sont encore à venir.
Nous donnons aux utilisateur·rice·s plus de flexibilité sur la ligne de commande, avec l'ajout de trois options de transformation des paquets :
(toujours déboguer dans de bonnes conditions !),
, et
. Les transformations sont maintenant enregistrées dans le profil et rejouées lors de la mise à jour de guix. En outre, ces options fonctionnent maintenant sur l'ensemble du graphe de dépendance, y compris les entrées « implicites », ce qui permet des transformations qui n'étaient pas possibles auparavant, comme par exemple :
Enfin, le nouveau module (transformations guix) fournit une interface vers les options de transformation disponibles en ligne de commande, ce qui est utile si vous souhaitez utiliser de telles transformations dans un manifest.
Le manuel de référence a été étoffé : il y a une nouvelle section « Démarrage », la section « Interface de programmation » contient plus d'informations pour les emballeurs·euse·s. Nous avons ajouté des exemples de codes à de nombreux endroits ; dans la copie en ligne du manuel, les identificateurs de ces extraits de codes sont cliquables, ce qui permet de se rendre au bon endroit dans les manuels Guix ou Guile.
Enfin, le manuel est entièrement traduit en français, en allemand et en espagnol, avec des traductions partielles en russe et en chinois. Guix lui-même est entièrement traduit dans ces trois langues et partiellement traduit dans onze autres langues.
Packs, GNU/Hurd, images disques, services...
Mais ce n'est pas tout ! Si vous souhaitez faire passer des applications de Guix sur des machines sans Guix,
prend désormais en charge un nouveau moteur d'exécution « fakechroot » pour les packs relocalisables, et la possibilité de choisir parmi différents moteurs au moment de l'exécution grâce à la variable GUIX_EXECUTION_ENGINE. Le moteur fakechroot améliore les performances par rapport au moteur proot, pour les hôtes qui ne prennent pas en charge les espaces de noms d'utilisateur·rice·s non privilégié·e·s.
La prise en charge de la compilation croisée de l'ensemble du système - comme dans la construction du système
- a été améliorée. Ceci, ainsi que de nombreux travaux de portage à la fois pour les paquets et pour les machines Guix System, apporte le service hurd-vm, un système Guix GNU/Hurd à compilation croisée fonctionnant comme une machine virtuelle sous GNU/Linux. Cela nous a permis de commencer à travailler sur le support natif de GNU/Hurd.
Dans le même ordre d'idées, le nouveau module (gnu image) met en œuvre une interface flexible pour les images du système d'exploitation ; depuis la ligne de commande, il est accessible via le système
. Plusieurs types d'images sont pris en charge : ISO-9660 compressé, qcow2 contenant des partitions ext4, ext2 avec options Hurd, etc. Ceci est actuellement implémenté en utilisant genimage.
En plus de ceux déjà mentionnés, une douzaine de nouveaux services système sont disponibles, notamment les services pour Ganeti, LXQt, R Shiny, Gemini, et Guix Build Coordinator.
2 000 paquets ont été ajoutés, pour un total de plus de 15 000 paquets ; 3 652 ont été mis à niveau. La distribution est livrée avec GNU libc 2.31, GCC 10.2, GNOME 3.34, Xfce 4.14.2, Linux-libre 5.9.3, et LibreOffice 6.4.6.2 pour n'en citer que quelques-uns. Il y a également un nouveau système de construction pour les paquets construits avec Maven (le démarrage de Maven à Guix a fait l'objet d'une conférence lors des Guix Days la semaine dernière).
Le fichier NEWS énumère d'autres changements notables et des corrections de bogues qui pourraient vous intéresser.
Essayez-le !
Vous pouvez télécharger cette nouvelle version et prendre contact avec nous.
A ce propos, notre ambassadeur Debian nous a dit que vous pourrez bientôt
si vous êtes sur Debian ou une distribution dérivée !
Profitez-en bien ! »
Credits
Ricardo Wurmus (grand stick, synthesizer, drums, vocals, lyrics) — Luis Felipe (illustration) — Vagrant Cascadian (Debian packaging, lyrics) — Festival (back vocals)
Dernière modification par gonzoleri (11-09-2021 18:34:07)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Hors ligne
j'ai contribué à mon niveau, qui n'est pas celui·elle d'un·e développeur·euse, mais qui concerne la traduction en français d'environ 8% du manuel d'utilisation
C'est déjà très beau.
Plus les tutos que tu as écrit, c'est énorme !!!!
Hors ligne
C'est déjà très beau.
Plus les tutos que tu as écrit, c'est énorme !!!!
Salut deuchdeb !
En fait, lors de ma première installation de Guix System, début 2018, j'ai pris des notes et ensuite ça m'a semblé naturel de faire partager un peu tout ça
A bientôt
Dernière modification par gonzoleri (20-01-2021 21:15:27)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Si cette commande échoue parce que vous n'avez pas la clé publique requise, alors lancez cette commande pour l'importer :
et relancez la commande « gpg --verify ».
Pour installer Guix System, veuillez consulter la rubrique « Système Installation » dans le manuel. https://guix.gnu.org/manual/fr/html_nod … yst_00e8me
Pour installer Guix sur un système en fonctionnement, voir « Installation » dans le manuel. https://guix.gnu.org/manual/fr/html_nod … on-binaire
Dernière modification par gonzoleri (13-12-2020 00:11:57)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
En faisant cela, vous installez exactement les paquets listés. Vous pouvez avoir ce fichier sous contrôle de version et le partager avec d'autres, ce qui est pratique. 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. On l'attendait depuis longtemps !
Les utilisateurs qui aiment exécuter toujours les dernières et meilleures pièces du patrimoine logiciel libre vont adorer la nouvelle option de transformation de paquet --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 :
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 emballé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 paquetage donné se construit avec succès avec la dernière version de l'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 à l'attente de la plupart des utilisateurs.
Une autre amélioration pratique concerne les suggestions lors de fautes de frappe :
Les personnes qui configurent le déchargement de la compilation par SSH apprécieront 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 https://translate.fedoraproject.org/projects/guix/ et vous pouvez aider ! https://guix.gnu.org/manual/devel/en/ht … -Guix.html
Outils pour les développeurs
Nous avons de bonnes nouvelles pour les empaqueteurs ! Tout d'abord, 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 "versioning sémantique" lorsqu'elle est utilisée en mode récursif.
La commande guix refresh inclut maintenant de nouveaux " 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. Cela améliore grandement la couverture de guix refresh.
les développeurs peuvent également 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. Par exemple,
devient
tandis que
devient
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 qcow2est maintenant compressé, ce qui supprime la nécessité de compresser manuellement les images 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.
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.
Performances
Une chose que vous remarquerez est que l'installation de substitution (téléchargement de binaires pré-construits) est devenue plus rapide, comme nous l'avons expliqué précédemment. 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 la publication guix 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 réseau local.
Sur Guix System, 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 est 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 de Guix System 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- disponible à partir 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. Référez-vous à la documentation pour un exemple.
Support POWER9, paquets, services
Le support POWER9 est maintenant disponible en tant qu'aperçu technologique, grâce au travail inlassable de ceux qui ont aidé à porter Guix sur cette plateforme. Il n'y a pas encore beaucoup de substituts binaires POWER9 disponibles, en raison de la capacité POWER9 limitée de notre ferme de construction, mais si vous n'avez pas peur de construire de nombreux paquets à partir de la source, nous serions ravis de connaître votre expérience !
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 service qui alimente notre ferme de construction.
La panoplie 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.
Le fichier NEWS liste d'autres changements notables et des corrections de bogues qui pourraient vous intéresser.
Le script d'installation a été amélioré pour permettre une plus grande automatisation. Par exemple, si vous êtes pressé, vous pouvez l'exécuter avec :
pour procéder à l'installation du binaire Guix sur votre système sans aucune invite !
Vous pouvez également être intéressé à essayer l'image VM de démonstration du système Guix qui supporte maintenant l'intégration du presse-papiers avec l'hôte et le redimensionnement dynamique grâce au protocole SPICE, ce qui, nous l'espérons, améliorera l'expérience utilisateur.
Pour passer en revue toutes les options d'installation à votre disposition, consultez la page de téléchargement et n'hésitez pas à nous contacter. »
Dernière modification par gonzoleri (13-05-2021 20:15:06)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Cela créera le répertoire ~/src/guix-config et le remplira d'un tas de fichiers parmi lesquels home-configuration.scm avec ces lignes :
guix home import a automatiquement ajouté les paquets de ~/.guix-profile au champ des paquets. Comme j'utilise Bash, il a également ajouté une instance de home-bash-service-type avec des alias extraits de mon ~/.bashrc ; il a également fait des copies de ~/.bashrc et ~/.bash_profile et y fait référence.
Maintenant que j'ai une configuration initiale, je peux d'abord la tester dans un conteneur isolé :
Cette commande donne un shell interactif dans un conteneur où mon environnement personnel, tel que déclaré dans home-configuration.scm, est déployé. Là, je peux voir mon répertoire personnel tel qu'il serait si je déployais mon environnement personnel "pour de vrai" : Je peux voir mon ~/.bashrc et autres, je peux vérifier que tous les paquets déclarés sont dans $PATH et visibles dans ~/.guix-home, et ainsi de suite. Et tout cela est sans danger : mon répertoire personnel actuel n'a pas été modifié !
Une fois satisfait de ma configuration, je peux l'instancier :
A ce moment là, mon répertoire personnel actuel correspond à cette configuration. Certains de mes fichiers point (.) sont maintenant fournis par Guix Home, et donc ce sont des liens symboliques ("symlinks") vers leur copie en lecture seule dans /gnu/store :
Mais ne vous inquiétez pas : avant de créer ces symlinks, guix home reconfigure les sauvegarde des fichiers existants sous ~/TIMESTAMP-guix-home-legacy-configs-backup, où TIMESTAMP est un timestamp de style Unix.
Et voilà, j'ai ma première génération de Guix Home !
guix home describe montre le suivi de la provenance que nous connaissons et aimons de Guix System : toutes les informations dont nous avons besoin pour redéployer le même environnement domestique ailleurs, ou à un moment différent dans le temps. C'est aussi l'information sur laquelle guix home reconfigure s'appuie pour s'assurer que vous ne rétrogradez jamais accidentellement votre environnement de base vers une ancienne révision de Guix.
Aller plus loin
D'accord, à ce stade, vous pouvez penser que c'est beaucoup d'agitation mais le "seul" avantage par rapport aux fichiers point (dot files) sous contrôle de version est que guix home s'occupe aussi de l'installation des paquets. Guix Home brille vraiment lorsque vous utilisez des services de plus haut niveau, et lorsque vous commencez à composer des services ensemble.
Dans l'exemple ci-dessous, dans le champ services, nous pouvons ajouter une déclaration de service qui exécute Redshift, un programme qui ajuste la température de couleur de l'écran en fonction de l'heure de la journée :
L'effet est que, dès que nous nous connectons, sous Xorg, Redshift sera lancé en arrière-plan en tant que service Shepherd. Le ~/.profile généré par Home se charge de faire apparaître Shepherd, qui à son tour fait apparaître le service Redshift :
Nous avons gagné une autre chose ici : un langage de configuration cohérent et unifié. Au lieu d'apprendre le format de fichier de configuration de Redshift, nous définissons un enregistrement home-redshift-configuration, directement dans Scheme. Sous le capot, cette configuration est convertie dans le format de fichier de Redshift ; toute erreur est détectée au moment de la configuration, lors de l'exécution de guix home reconfigure, et nous pouvons être sûrs que Redshift reçoit un fichier de configuration valide.
Nous pouvons de la même manière définir une tâche mcron périodique, par exemple une tâche qui met à jour une base de données de recherche GNU Idutils (c'est un moyen assez pratique et rapide de rechercher du code ou des documents !)
Encore une fois, guix home crée un service Shepherd qui démarre mcron avec un fichier de configuration contenant les définitions des tâches périodiques, que nous pouvons inspecter via herd :
Services, composés
Si vous utilisez déjà Guix System, tout ce qui précède vous semblera certainement familier : Guix Home se base sur le cadre de services qui fait fonctionner Guix System ; les services Home sont définis dans l'arbre de modules (gnu home services ...).
Ce cadre nous permet de définir les relations entre les "services", au sens large, et comment les services s'étendent les uns les autres - dans l'exemple ci-dessus, redshift et mcron étendent tous les deux Shepherd en lui donnant un démon dont il doit s'occuper. Nous pouvons voir ces relations en jeu en exécutant :
... ce qui, pour la configuration décrite ci-dessus, donne un graphique qui ressemble à ceci :
https://guix.gnu.org/static/blog/img/ho … -graph.svg
Nous voyons redshift, mcron et shepherd, mais aussi des services de plus bas niveau que guix home instancie pour nous, comme le service profile qui se charge de déployer les paquets listés dans le champ packages sous ~/.guix-home/profile. Chaque flèche indique une extension de service. Vous pouvez en lire plus (et en voir plus !) sur la composition des services. Pour satisfaire notre public de mathématiciens et de programmeurs fonctionnels, nous devons mentionner que les types de services et leurs opérations d'extension forment un monoïde.
Quelle est la prochaine étape ?
Soyons clairs : Guix Home est assez nouveau et il y a de fortes chances que guix home search - la commande pour rechercher des services par mot-clé - ne vous donnera pas le service que vous cherchez. Il reste aussi un tas de questions ouvertes, comme par exemple comment réutiliser des services initialement définis pour Guix System dans des cas où ils pourraient être aussi utiles dans Guix Home - Syncthing, par exemple.
Mais alors qu'il s'agit encore d'une "technology preview", c'est déjà un outil avec lequel les bricoleurs peuvent jouer et en tirer profit. Des patches ajoutant de nouveaux services ont déjà été proposés ; peut-être que votre service préféré sera le prochain ? Pensez à y contribuer.
Avec une nouvelle version et un anniversaire de dix ans à venir, nous sommes heureux de célébrer avec un outil qui étend la portée du déploiement déclaratif et reproductible !
A propos de GNU Guix
GNU Guix est un gestionnaire de paquets transactionnel et une distribution avancée du système GNU qui respecte la liberté de l'utilisateur. Guix peut être utilisé au-dessus de n'importe quel système utilisant le noyau Hurd ou Linux, ou peut être utilisé comme une distribution de système d'exploitation autonome 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. Lorsqu'il est 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.
------------------------------------------------------------------------------------------------------------------------------------------------
Pour en savoir plus sur les dot files
Dans Unix/Linux, dot-files fait référence aux fichiers/répertoires dont le nom est précédé d'un . Les exemples sont ~/.bashrc, ~/.bash_profile, etc. Le point en tête . est utilisé comme indicateur par des logiciels comme bash et nautilus pour ne pas lister ces fichiers normalement, mais seulement lorsqu'ils sont spécifiquement demandés, par exemple en appuyant sur Ctrl+H dans Nautilus. Cela s'explique par le fait que, généralement, les fichiers point sont utilisés pour stocker les configurations de différentes applications, mais ils sont aussi parfois utilisés autrement. Par exemple, Mozilla crée un dossier .mozilla qui contient ses fichiers de configuration ainsi que le cache du navigateur.
Les gens ont tendance à sauvegarder et à partager leurs dot-files afin que d'autres puissent démarrer leurs propres applications en utilisant ces fichiers de configuration. Un guide non officiel : https://dotfiles.github.io/.
Voilà, en espérant que cette lecture vous ait plû
Dernière modification par gonzoleri (23-03-2022 18:18:26)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Dernière modification par gonzoleri (26-04-2022 08:54:00)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
Dernière modification par gonzoleri (13-12-2022 09:46:50)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne
En plus de fournir une interface plus simple, guix shell améliore considérablement les performances grâce à la mise en cache. Il simplifie également les flux de travail des développeurs en reconnaissant automatiquement les fichiers guix.scm et manifest.scm présents dans un répertoire : déposez l'un d'entre eux dans votre projet et les autres développeurs pourront commencer à hacker simplement en exécutant guix shell, sans arguments. En parlant de cela : --export-manifest vous permettra de commencer en "convertissant" les arguments de la ligne de commande en un manifeste. Lisez plus sur guix shell dans le manuel.
Une autre innovation de l'interpréteur de commandes guix est l'émulation optionnelle de la norme de hiérarchie du système de fichiers (FHS). Le FHS spécifie des emplacements pour différentes catégories de fichiers-/bin pour les binaires des commandes essentielles, /lib pour les bibliothèques, et ainsi de suite. Guix avec son store n'adhère pas au FHS, ce qui empêche les utilisateurs d'exécuter des programmes qui supposent l'adhésion au FHS. Le nouveau drapeau --emulate-fhs (ou -F) de l'interpréteur de commandes guix, combiné avec --container (-C), l'instruit de créer un environnement de conteneur qui suit le FHS. Ceci est parfaitement illustré par cet exemple, où la commande ls du paquet coreutils apparaît juste sous /bin, comme si nous étions sur un système FHS comme Debian :
Une autre grande nouveauté est Guix Home. En un mot, Home apporte la nature déclarative du Guix System à votre environnement domestique : il vous permet de déclarer tous les aspects de vos environnements domestiques - "dot files", services, et packages - et peut instancier cet environnement, dans votre $HOME actuel ou dans un container.
Si vous maintenez déjà vos fichiers dot sous contrôle de version, ou si vous souhaitez garder les choses sous contrôle pour ne pas avoir à passer des jours ou des semaines à les configurer à nouveau chaque fois que vous changez d'ordinateur portable, c'est l'outil qu'il vous faut. Regardez cette excellente introduction que David Wilson a donné lors de la célébration du Ten Years, et lisez plus sur Guix Home dans le manuel.
Les options de transformation de paquet donnent aux utilisateurs un contrôle fin sur la façon dont les paquets sont construits. La nouvelle option --tune permet de régler les paquets pour une micro-architecture CPU spécifique ; cela permet d'utiliser les instructions enables the use of the newest single-instruction multiple-data (SIMD) instructions, SIMD (single-instruction multiple-data) les plus récentes, comme AVX-512 sur les CPU AMD/Intel récents, ce qui peut faire une différence significative pour certaines charges de travail comme les calculs d'algèbre linéaire.
Depuis la version 1.3.0, le projet a commencé à maintenir une ferme de compilation alternative à https://bordeaux.guix.gnu.org. Elle est indépendante de la ferme de compilation de ci.guix.gnu.org (donnée et hébergée par le Max Delbrück Center for Molecular Medicine à Berlin, Allemagne), ce qui a deux avantages : cela nous permet de tester les substituts produits par chaque système, et cela fournit une redondance si l'une de ces deux fermes de compilation tombe en panne. Guix est maintenant configuré par défaut pour récupérer les substituts de n'importe laquelle de ces deux fermes de construction. De plus, un bug a été corrigé, assurant que Guix bascule gracieusement vers un autre fournisseur de substituts quand l'un d'eux tombe en panne.
Celles et ceux qui ont apprécié le déploiement déclaratif de flottes entières de machines apprécieront probablement la nouvelle option --execute de guix deploy.
Une distribution plus solide
La distribution elle-même a vu 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 permet aux utilisateurs de rapporter automatiquement des informations de débogage utiles en cas de crash. Cela aidera les développeurs à résoudre les bogues qui se produisent avec des configurations inhabituelles.
Le démarrage des applications a été réduit grâce à un nouveau cache de linker dynamique par application qui réduit drastiquement le nombre de stat et d'appels ouverts dus à la recherche de la bibliothèque partagée (nous sommes heureux que cela en ait inspiré d'autres).
Guix System utilise maintenant la version 0.9 du GNU Shepherd, qui corrige des défauts, améliore la journalisation, et ajoute des fonctionnalités telles que l'activation de services de type systemd et le démarrage de services de type inetd. En parlant de services, la nouvelle sous-commande guix system edit fournit aux utilisateurs un moyen supplémentaire d'inspecter les services, en complétant guix system search et guix system extension-graph.
Il existe 15 nouveaux services système parmi lesquels choisir, dont Jami, Samba, fail2ban et Gitile, pour n'en citer que quelques-uns.
Une nouvelle interface est disponible pour déclarer l'espace de swap dans les configurations de systèmes d'exploitation. Cette interface est plus expressive et plus flexible que ce qui était disponible auparavant.
De même, l'interface permettant de déclarer une configuration réseau statique a été remaniée. Sous 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 contrôles statiques pour vous empêcher de déployer des configurations manifestement défectueuses.
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 dix plus grandes distros selon Repology. Parmi les nombreuses mises à jour et ajouts de paquets notables, GNOME 42 est maintenant disponible. KDE n'est pas encore là mais des dizaines de paquets KDE ont été ajoutés donc nous nous en rapprochons ; Qt 6 est également disponible. La distribution est également fournie avec 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 le support de la compilation juste à temps !)
Dans d'autres nouvelles, motivées par le fait que Python 2 a officiellement atteint la "fin de vie" en 2020, plus de 500 paquets Python 2 ont été supprimés - ceux dont le nom commence par python2-. Cela inclut les "gros" paquets comme python2-numpy et python2-scipy. Celles et ceux qui ont encore besoin de ces paquets ont deux options : utiliser guix time-machine pour passer à un ancien commit qui contient les paquets dont ils ont besoin, ou utiliser le canal Guix-Past pour construire certains de ces anciens paquets dans les environnements d'aujourd'hui - l'informatique scientifique est un domaine où cela peut être utile.
En plus de cela, le site Web propose un nouveau navigateur de paquets - enfin ! Entre autres choses, le navigateur de paquets fournit des URLs de paquets stables comme https://packages.guix.gnu.org/packages/PACKAGE.
Le fichier NEWS liste d'autres modifications et corrections de bogues dignes d'intérêt 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 accessible. Des sections de type "Comment faire" ont été écrites ou améliorées, telles que :
"Ecrire des Manifests"
"Répliquer Guix"
"Utiliser TeX et LaTeX"
"Conseils pour le dépannage du système"
"Architectures étrangères"
"Utilisation interactive de Guix"
Le livre de cuisine continue également à recevoir des entrées "comment faire", consultez-le !
Le manuel de référence de Guix est entièrement traduit en français et en allemand ; 70% est disponible en espagnol, et il y a des traductions préliminaires en russe, chinois, et autres langues. Guix lui-même est entièrement traduit en français, avec des traductions presque complètes en portugais brésilien, allemand, slovaque et espagnol, et des traductions partielles dans presque vingt autres langues. Consultez le manuel sur la façon d'aider ou cette visite guidée par le traducteur en chef Julien Lepiller !
Favoriser la reproductibilité à long terme
Une caractéristique saillante de Guix est son support pour le déploiement reproductible de logiciels. Il y a plusieurs aspects à cela, l'un d'entre eux est la possibilité de récupérer le code source de l'archive Software Heritage. Alors que Guix était déjà capable de récupérer le code source des paquets à partir de Software Heritage comme solution de repli, avec la version 1.4.0 le code source des canaux Guix est automatiquement récupéré à partir de Software Heritage si son URL d'origine est devenue inaccessible.
De plus, Guix est maintenant capable de récupérer et de restaurer les tarballs de code source tels que les fichiers tar.gz. Software Heritage archive le contenu des tarballs, mais pas les tarballs eux-mêmes. Cela a créé un décalage d'impédance pour Guix, où la majorité des définitions de paquets font référence aux tarballs et s'attendent à pouvoir vérifier le hachage du contenu du tarball lui-même. Pour combler cette lacune, Timothy Sample a développé Disarchive , un outil qui peut (1) extraire les métadonnées des tarballs, et (2) assembler les métadonnées précédemment extraites et les fichiers réels pour reconstruire un tarball, comme le montre le schéma ci-dessous.
Le projet Guix a mis en place une tâche d'intégration continue pour construire une base de données Disarchive, qui est disponible à disarchive.guix.gnu.org. La base de données comprend des métadonnées pour tous les tarballs auxquels les paquets font référence. Lorsqu'un tarball de code source disparaît, Guix récupère de manière transparente les métadonnées du tarball à partir de la base de données Disarchive, récupère le contenu des fichiers à partir de Software Heritage, et reconstruit le tarball original. Depuis le "Preservation of Guix Report" publié en janvier 2022, presque 75% des fichiers .tar.gz auxquels les paquets font référence sont maintenant entièrement archivés avec Disarchive et Software Heritage. L'exécution de guix lint -c archival PKG vous renseignera sur le statut d'archivage de PKG. Vous pouvez en lire plus dans le rapport annuel de Guix-HPC.
C'est un pas en avant significatif pour fournir, pour la première fois, un outil qui peut redéployer les anciens environnements logiciels tout en maintenant la connexion entre le code source et les binaires.
Paquets d'applications et images système
La commande guix pack pour créer des " paquets d'applications " - des images d'applications autonomes - a été étendue : guix pack -f deb crée un paquet .deb autonome qui peut être installé sur Debian et les distributions dérivées ; le nouveau drapeau --symlink lui permet de créer des liens symboliques dans l'image.
Au niveau du système, la nouvelle commande system image remplace les sous-commandes guix system existantes, fournissant un point d'entrée unique pour construire des images de tous types : images de disques bruts, images de machines virtuelles QCOW2, images de CD/DVD ISO8660, images Docker, et même des images pour le sous-système Windows pour Linux (WSL2) de Microsoft. Il est doté d'une interface de haut niveau qui vous permet de déclarer le type d'image que vous souhaitez : le format de stockage, les partitions et, bien sûr, le système d'exploitation de cette image. Pour faciliter son utilisation, des types d'images prédéfinis sont fournis :
Cela inclut par exemple https://guix.gnu.org/manual/en/html_nod … dules.html un type d'image pour les machines Pine64 et pour le système d'exploitation GNU/Hurd. Par exemple, voici comment créer une image de machine virtuelle QCOW2 adaptée à QEMU :
... où my-operating-system.scm contient une déclaration de système d'exploitation.
De même, voici comment créer, sur votre machine x86_64, une image pour votre carte Pine64, prête à être transférée sur une carte SD ou un périphérique de stockage similaire à partir duquel la carte démarrera :
Le type d'image pine64-raw spécifie que le logiciel dans l'image est en fait une compilation croisée vers aarch64-linux-gnu, c'est-à-dire GNU/Linux sur un CPU AArch64, avec la variante U-Boot appropriée comme chargeur de démarrage. Le ciel est la limite !
Nicer packaging experience
La nouvelle commande guix style peut automatiquement convertir de l'"ancien" style au "nouveau" style d'entrées de paquets. Elle peut également reformater des fichiers Scheme entiers en suivant les canons stylistiques du jour, ce qui est particulièrement pratique lorsqu'on débute avec le langage.
Ce n'est que la partie émergée de l'iceberg : la nouvelle macro modify-inputs rend la manipulation des entrées de paquets plus facile et plus claire, et on peut utiliser des G expressions par exemple dans les phases de paquets. Lisez notre annonce précédente pour plus d'informations. En plus de cela, le nouveau mécanisme d'assainissement des champs est utilisé pour valider certains champs ; par exemple, le champ licence est maintenant vérifié au niveau du type et la syntaxe Texinfo de la description et du synopsis est validée, le tout sans aucune surcharge d'exécution dans les cas courants. Nous espérons que ces changements faciliteront la prise en main de l'empaquetage.
La commande guix build a de nouvelles options, --list-systems et --list-targets, pour lister les types de systèmes supportés (qui peuvent être passés à --system) et les triplets de cibles de compilation croisée (à utiliser avec --target). Sous le capot, le nouveau module (guix platform) permet aux développeurs de définir des "plates-formes" - une combinaison de l'architecture du processeur et du système d'exploitation - de manière abstraite, en unifiant divers éléments d'information auparavant éparpillés.
De plus, les empaqueteurs peuvent désormais marquer comme "tunables" les paquets qui bénéficieraient d'optimisations de la micro-architecture du CPU, activées avec --tune.
L'empaquetage de Python a connu des changements importants. Tout d'abord, le paquet python respecte désormais la variable d'environnement GUIX_PYTHONPATH plutôt que PYTHONPATH. Cela garantit que Python ne prendra pas involontairement des paquets non fournis par Guix. Deuxièmement, le nouveau pyproject-build-system implémente le PEP 517. Il complète le système existant python-build-system, et les deux peuvent éventuellement être fusionnés ensemble.
Ce qui est génial avec l'empaquetage, c'est quand il est gratuit. La commande guix import a gagné le support de plusieurs dépôts de paquets en amont : minetest (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 connu diverses améliorations. La commande guix refresh pour mettre à jour automatiquement les définitions de paquets a un nouvel outil de mise à jour generic-git.
Essayez-le !
Il y a plusieurs façons de commencer à utiliser Guix :
Le script d'installation vous permet d'installer rapidement Guix au dessus d'une autre distribution GNU/Linux.
L'image de la machine virtuelle Guix System peut être utilisée avec QEMU et est un moyen simple de découvrir le Guix System sans toucher à votre système.
Vous pouvez installer Guix System comme une distribution autonome. L'installateur vous guidera à travers les étapes de la configuration initiale.
Pour passer en revue toutes les options d'installation à votre disposition, consultez la page de téléchargement et n'hésitez pas à nous contacter.
Bonne lecture !
Dernière modification par gonzoleri (20-12-2022 13:34:28)
Packard Bell EasyNote TE - Intel(R)B815 - Intel HG Graphics
Guix System 1.4.0
«Pratiquez aléatoirement des actes de gentillesse et de beauté insensée.» Anne Herbert
Hors ligne