diff options
author | Julien Lepiller <julien@lepiller.eu> | 2019-04-24 12:22:49 +0200 |
---|---|---|
committer | Julien Lepiller <julien@lepiller.eu> | 2019-04-24 12:25:01 +0200 |
commit | ad377c3d343e07e6b99f60d092d2ab1d94f07779 (patch) | |
tree | 1c912fffeb685f29e4c5ae48e488e09637c6005c /doc | |
parent | 1c0dd730922b49c333d793295d912ce44e13498c (diff) | |
download | patches-ad377c3d343e07e6b99f60d092d2ab1d94f07779.tar patches-ad377c3d343e07e6b99f60d092d2ab1d94f07779.tar.gz |
nls: Update 'fr' translation of the manual.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/contributing.fr.texi | 108 | ||||
-rw-r--r-- | doc/guix.fr.texi | 3999 |
2 files changed, 2655 insertions, 1452 deletions
diff --git a/doc/contributing.fr.texi b/doc/contributing.fr.texi index 8900c7c704..ab9c17e373 100644 --- a/doc/contributing.fr.texi +++ b/doc/contributing.fr.texi @@ -22,7 +22,7 @@ correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe quel nom ou pseudonyme de leur choix. @menu -* Construire depuis Git:: toujours le plus récent. +* Construire depuis Git:: Toujours le plus récent. * Lancer Guix avant qu'il ne soit installé:: Astuces pour les hackers. * La configuration parfaite:: Les bons outils. * Consignes d'empaquetage:: Faire grandir la distribution. @@ -170,11 +170,12 @@ arborescence des source locale. @node La configuration parfaite @section La configuration parfaite -The Perfect Setup to hack on Guix is basically the perfect setup used for -Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference -Manual}). First, you need more than an editor, you need -@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful -@url{http://nongnu.org/geiser/, Geiser}. To set that up, run: +La configuration parfaite pour travailler sur Guix est simplement la +configuration parfaite pour travailler en Guile (@pxref{Using Guile in +Emacs,,, guile, Guile Reference Manual}). Tout d'abord, vous avez besoin de +mieux qu'un éditeur de texte, vous avez besoin de +@url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe +@url{http://nongnu.org/geiser/, Geiser}. Pour paramétrer cela, lancez : @example guix package -i emacs guile emacs-geiser @@ -237,9 +238,8 @@ finissent sur @code{…}, qui peuvent aussi être étendues. @section Consignes d'empaquetage @cindex paquets, création -The GNU distribution is nascent and may well lack some of your favorite -packages. This section describes how you can help make the distribution -grow. +La distribution GNU est jeune et vos paquets préférés peuvent manquer. +Cette section décrit comment vous pouvez aider à agrandir la distribution. Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} @@ -283,19 +283,20 @@ d'informations sur la véritable erreur : ./pre-inst-env guile -c '(use-modules (gnu packages gnew))' @end example -Once your package builds correctly, please send us a patch -(@pxref{Envoyer des correctifs}). Well, if you need help, we will be happy to -help you too. Once the patch is committed in the Guix repository, the new -package automatically gets built on the supported platforms by -@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration -system}. +Une fois que votre paquet est correctement construit, envoyez-nous un +correctif (@pxref{Contribuer}). Enfin, si vous avez besoin d'aide, nous +serrons ravis de vous aider. Une fois que le correctif soumis est committé +dans le dépôt Guix, le nouveau paquet est automatiquement construit sur les +plate-formes supportées par @url{http://hydra.gnu.org/jobset/gnu/master, +notre système d'intégration continue}. @cindex substitution -Users can obtain the new package definition simply by running @command{guix -pull} (@pxref{Invoquer guix pull}). When @code{@value{SUBSTITUTE-SERVER}} -is done building the package, installing the package automatically downloads -binaries from there (@pxref{Substituts}). The only place where human -intervention is needed is to review and apply the patch. +On peut obtenir la nouvelle définition du paquet simplement en lançant +@command{guix pull} (@pxref{Invoquer guix pull}). Lorsque +@code{@value{SUBSTITUTE-SERVER}} a fini de construire le paquet, +l'installation du paquet y télécharge automatiquement les binaires +(@pxref{Substituts}). La seule intervention humaine requise est pendant la +revue et l'application du correctif. @menu @@ -558,11 +559,10 @@ avec les deux. Si le paquet Foo ne compile qu'avec Ptyhon 3, on le nomme @code{python2-foo}. S'il est compatible avec les deux versions, nous créons deux paquets avec les noms correspondant. -If a project already contains the word @code{python}, we drop this; for -instance, the module python-dateutil is packaged under the names -@code{python-dateutil} and @code{python2-dateutil}. If the project name -starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as -described above. +Si un projet contient déjà le mot @code{python}, on l'enlève, par exemple le +module python-dateutil est packagé sous les noms @code{python-dateutil} et +@code{python2-dateutil}. Si le nom du projet commence par @code{py} (p.@: +ex.@: @code{pytz}), on le garde et on le préfixe comme décrit ci-dessus. @subsubsection Spécifier les dépendances @cindex entrées, pour les paquets Python @@ -574,7 +574,7 @@ dans @file{tox.ini}. Votre mission, lorsque vous écrivez une recette pour un paquet Python, est de faire correspondre ces dépendances au bon type « d'entrée » -(@pxref{Référence de paquet, inputs}). Bien que l'importeur @code{pypi} fasse +(@pxref{Référence des paquets, inputs}). Bien que l'importeur @code{pypi} fasse du bon boulot (@pxref{Invoquer guix import}), vous devriez vérifier la liste suivant pour déterminer où va telle dépendance. @@ -753,7 +753,7 @@ Certaines formes spéciales introduites dans Guix comme la macro définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode @code{guix-devel-mode} qui indente et colore le code Guix correctement -(@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual}). +(@pxref{Développement,,, emacs-guix, The Emacs-Guix Reference Manual}). @cindex indentation, du code @cindex formatage, du code @@ -834,29 +834,29 @@ Assurez-vous que le paquet se construise sur votre plate-forme avec @code{guix build @var{paquet}}. @item -We recommend you also try building the package on other supported -platforms. As you may not have access to actual hardware platforms, we -recommend using the @code{qemu-binfmt-service-type} to emulate them. In -order to enable it, add the following service to the list of services in -your @code{operating-system} configuration: +Nous vous recommandons aussi d'essayer de construire le paquet sur les +autres plate-formes prises en charge. Comme vous n'avez pas forcément accès +aux plate-formes matérielles, nous vous recommandons d'utiliser le +@code{qemu-binfmt-service-type} pour les émuler. Pour cela, ajoutez le +service suivant à la liste des services dans votre configuration de système +d'exploitation : @example (service qemu-binfmt-service-type (qemu-binfmt-configuration - (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el")) + (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")) (guix-support? #t))) @end example -Then reconfigure your system. +Puis reconfigurez votre système. -You can then build packages for different platforms by specifying the -@code{--system} option. For example, to build the "hello" package for the -armhf, aarch64, powerpc, or mips64 architectures, you would run the -following commands, respectively: +Vous pourrez ensuite construire les paquets pour différentes plate-formes en +spécifiant l'option @code{--system}. Par exemple pour construire le paquet +« hello » pour les architectures armhf, aarch64 ou mips64, vous devrez +lancer les commandes suivantes, respectivement : @example guix build --system=armhf-linux --rounds=2 hello guix build --system=aarch64-linux --rounds=2 hello -guix build --system=powerpc-linux --rounds=2 hello guix build --system=mips64el-linux --rounds=2 hello @end example @@ -876,12 +876,12 @@ depuis un unique emplacement et qu'ils affectent tout le système, ce qu'empêchent les copies groupées. @item -Take a look at the profile reported by @command{guix size} (@pxref{Invoquer guix size}). This will allow you to notice references to other packages -unwillingly retained. It may also help determine whether to split the -package (@pxref{Des paquets avec plusieurs résultats}), and which optional -dependencies should be used. In particular, avoid adding @code{texlive} as -a dependency: because of its extreme size, use @code{texlive-tiny} or -@code{texlive-union} instead. +Regardez le profil rapporté par @command{guix size} (@pxref{Invoquer guix size}). Cela vous permettra de remarquer des références à d'autres paquets +qui ont été retenus sans que vous vous y attendiez. Il peut aussi aider à +déterminer s'il faut découper le paquet (@pxref{Des paquets avec plusieurs +résultats}) et quelles dépendances facultatives utiliser. En particulier, +évitez d'ajouter @code{texlive} en dépendance : à cause de sa taille +extrême, utilisez @code{texlive-tiny} ou @code{texlive-union} à la place. @item Pour les changements important, vérifiez que les paquets qui en dépendent @@ -942,14 +942,16 @@ Cela est suffisant pour trouver une classe de non-déterminisme commune, comme l'horodatage ou des sorties générées aléatoirement dans le résultat de la construction. -Another option is to use @command{guix challenge} (@pxref{Invoquer guix challenge}). You may run it once the package has been committed and built -by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same -result as you did. Better yet: Find another machine that can build it and -run @command{guix publish}. Since the remote build machine is likely -different from yours, this can catch non-determinism issues related to the -hardware---e.g., use of different instruction set extensions---or to the -operating system kernel---e.g., reliance on @code{uname} or @file{/proc} -files. +Une autre option consiste à utiliser @command{guix challenge} +(@pxref{Invoquer guix challenge}). Vous pouvez lancer la commande une fois +que les paquets ont été committés et construits par +@code{@value{SUBSTITUTE-SERVER}} pour vérifier s'il obtient le même résultat +que vous. Mieux encore : trouvez une autre machine qui peut le construire +et lancez @command{guix publish}. Puisque la machine distante est sûrement +différente de la vôtre, cela peut trouver des problèmes de non-déterminisme +liés au matériel — par exemple utiliser une extension du jeu d'instruction — +ou du noyau du système d'exploitation — par exemple se reposer sur +@code{uname} ou les fichiers de @file{/proc}. @item Lorsque vous écrivez de la documentation, utilisez une formulation au genre diff --git a/doc/guix.fr.texi b/doc/guix.fr.texi index 541fd6f0d0..d961625d72 100644 --- a/doc/guix.fr.texi +++ b/doc/guix.fr.texi @@ -32,9 +32,9 @@ Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} -2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 -Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright -@copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, +2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, +2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* +Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 @@ -46,7 +46,7 @@ Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 -Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright +Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @@ -125,7 +125,7 @@ traduc@@traduc.org}. * Installation:: Installer Guix. * Installation du système:: Installer le système d'exploitation complet. * Gestion de paquets:: Installation des paquets, mises à jour, etc. -* Development:: Guix-aided software development. +* Développement:: Développement logiciel simplifié par Guix. * Interface de programmation:: Utiliser Guix en Scheme. * Utilitaires:: Commandes de gestion de paquets. * Configuration système:: Configurer le système d'exploitation. @@ -152,8 +152,8 @@ Introduction -* Managing Software the Guix Way:: What's special. -* Distribution GNU:: The packages and tools. +* Gérer ses logiciels avec Guix:: Ce qui est spécial. +* Distribution GNU:: Les paquets et les outils. Installation @@ -188,10 +188,20 @@ Installation du système * Installation depuis une clef USB ou un DVD:: Préparer le média d'installation. * Préparer l'installation:: Réseau, partitionnement, etc. -* Effectuer l'installation:: Pour de vrai. -* Installing Guix in a VM:: Guix System playground. +* Installation graphique guidée:: Installation graphique facile. +* Installation manuelle:: Installation manuelle pour les sorciers. +* Après l'installation du système:: Une fois que l'installation a + réussi. +* Installer Guix dans une VM:: Jouer avec le système Guix. * Construire l'image d'installation:: D'où vient tout cela. +Installation manuelle + + + +* Disposition du clavier réseau et partitionnement:: Paramètres initiaux. +* Effectuer l'installation:: Installer. + Gestion de paquets @@ -224,7 +234,7 @@ Substituts * De la confiance en des binaires:: Comment pouvez-vous avoir confiance en un paquet binaire ? -Development +Développement @@ -251,8 +261,8 @@ Définition des paquets -* Référence de paquet:: Le type de donnée des paquets. -* Référence d'origine:: Le type de données d'origine. +* Référence des paquets:: Le type de donnée des paquets. +* Référence des origines:: Le type de données d'origine. Utilitaires @@ -299,6 +309,8 @@ Configuration système fichiers. * Périphériques mappés:: Gestion des périphériques de bloc. * Comptes utilisateurs:: Spécifier des comptes utilisateurs. +* Disposition du clavier:: La manière dont le système interprète les + touches du clavier. * Régionalisation:: Paramétrer la langue et les conventions culturelles. * Services:: Spécifier les services du système. @@ -310,7 +322,7 @@ Configuration système * Configuration du chargeur d'amorçage:: Configurer le chargeur d'amorçage. * Invoquer guix system:: Instantier une configuration du système. -* Running Guix in a VM:: How to run Guix System in a virtual machine. +* Lancer Guix dans une VM:: Comment lancer Guix dans une machine virtuelle. * Définir des services:: Ajouter de nouvelles définitions de services. Services @@ -335,7 +347,7 @@ Services * Services web:: Services web. * Services de certificats:: Certificats TLS via Let's Encrypt. * Services DNS:: Démons DNS@. -* Services VPN:: Démons VPN +* Services VPN:: Démons VPN. * Système de fichiers en réseau:: Services liés à NFS@. * Intégration continue:: Le service Cuirass. * Services de gestion de l'énergie:: Augmenter la durée de vie de la @@ -364,37 +376,41 @@ Définir des services @chapter Introduction @cindex but -GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using -the international phonetic alphabet (IPA).} is a package management tool for -and distribution of the GNU system. Guix makes it easy for unprivileged -users to install, upgrade, or remove software packages, to roll back to a -previous package set, to build packages from source, and generally assists -with the creation and maintenance of software environments. - -@cindex Guix System -@cindex GuixSD, now Guix System -@cindex Guix System Distribution, now Guix System -You can install GNU@tie{}Guix on top of an existing GNU/Linux system where -it complements the available tools without interference -(@pxref{Installation}), or you can use it as a standalone operating system -distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix -System as ``Guix System Distribution'' or ``GuixSD''. We now consider it -makes more sense to group everything under the ``Guix'' banner since, after -all, Guix System is readily available through the @command{guix system} -command, even if you're using a different distro underneath!}. @xref{Distribution GNU}. +GNU Guix@footnote{« Guix » se prononce comme « geeks » (en prononçant le +« s »), ou « ɡiːks » dans l'alphabet phonétique international (API).} est un +outil de gestion de paquets et une distribution pour le système GNU@. Guix +facilite pour les utilisateurs non privilégiés l'installation, la mise à +jour et la suppression de paquets, la restauration à un ensemble de paquets +précédent, la construction de paquets depuis les sources et plus +généralement aide à la création et à la maintenance d'environnements +logiciels. + +@cindex Système Guix +@cindex GuixSD, maintenant le système Guix +@cindex Distribution Système Guix, maintenant le système Guix +Vous pouvez installer GNU@tie{}Guix sur un système GNU/Linux existant pour +compléter les outils disponibles sans interférence (@pxref{Installation}) ou +vous pouvez l'utiliser comme distribution système indépendante, @dfn{Guix +System}@footnote{Nous appelions le système Guix « la distribution système +Guix » ou « GuixSD ». nous considérons maintenant qu'il est plus pertinent +de regrouper tout sous la bannière de « Guix » comme, après tout, Guix +System est directement disponible sous la commande @command{guix system}, +meme si vous utilisez une autre distro en dessous !}. @xref{Distribution GNU}. @menu -* Managing Software the Guix Way:: What's special. -* Distribution GNU:: The packages and tools. +* Gérer ses logiciels avec Guix:: Ce qui est spécial. +* Distribution GNU:: Les paquets et les outils. @end menu -@node Managing Software the Guix Way -@section Managing Software the Guix Way +@node Gérer ses logiciels avec Guix +@section Gérer ses logiciels avec Guix @cindex interfaces utilisateurs -Guix provides a command-line package management interface (@pxref{Gestion de paquets}), tools to help with software development (@pxref{Development}), -command-line utilities for more advanced usage, (@pxref{Utilitaires}), as well -as Scheme programming interfaces (@pxref{Interface de programmation}). +Guix fournit une interface de gestion des paquets par la ligne de commande +(@pxref{Gestion de paquets}), des outils pour aider au développement +logiciel (@pxref{Développement}), des utilitaires en ligne de commande pour +des utilisations plus avancées (@pxref{Utilitaires}) ainsi que des interfaces +de programmation Scheme (@pxref{Interface de programmation}). @cindex démon de construction Son @dfn{démon de construction} est responsable de la construction des paquets pour les utilisateurs (@pxref{Paramétrer le démon}) et du @@ -448,17 +464,17 @@ de miettes pour les paquets (@pxref{Fonctionnalités}). @node Distribution GNU @section Distribution GNU -@cindex Guix System -Guix comes with a distribution of the GNU system consisting entirely of free -software@footnote{The term ``free'' here refers to the -@url{http://www.gnu.org/philosophy/free-sw.html,freedom provided to users of -that software}.}. The distribution can be installed on its own -(@pxref{Installation du système}), but it is also possible to install Guix as a -package manager on top of an installed GNU/Linux system -(@pxref{Installation}). When we need to distinguish between the two, we -refer to the standalone distribution as Guix@tie{}System. - -la distribution fournit les paquets cœur de GNU comme la GNU libc, GCC et +@cindex Système Guix +Guix fournit aussi une distribution du système GNU contenant uniquement des +logiciels libres@footnote{Le terme « libre » se réfère ici bien sûr à +@url{http://www.gnu.org/philosophy/free-sw.fr.html,la liberté offerte à +l'utilisateur de ces logiciels}.}. On peut installer la distribution +elle-même (@pxref{Installation du système}), mais on peut aussi installer Guix +comme gestionnaire de paquets par dessus un système GNU/Linux déjà installé +(@pxref{Installation}). Pour distinguer ces deux cas, on appelle la +distribution autonome le « système Guix » ou Guix@tie{}System. + +La distribution fournit les paquets cœur de GNU comme la GNU libc, GCC et Binutils, ainsi que de nombreuses applications GNU et non-GNU. La liste complète des paquets disponibles se trouve @url{http://www.gnu.org/software/guix/packages,en ligne} ou en lançant @@ -499,14 +515,15 @@ Loongson, ABI n32, avec le noyau Linux-libre. @end table -With Guix@tie{}System, you @emph{declare} all aspects of the operating -system configuration and Guix takes care of instantiating the configuration -in a transactional, reproducible, and stateless fashion (@pxref{Configuration système}). Guix System uses the Linux-libre kernel, the Shepherd -initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd -Manual}), the well-known GNU utilities and tool chain, as well as the -graphical environment or system services of your choice. +Avec Guix@tie{}System, vous @emph{déclarez} tous les aspects de la +configuration du système d'exploitation et guix s'occupe d'instancier la +configuration de manière transactionnelle, reproductible et sans état +(@pxref{Configuration système}). Guix System utilise le noyau Linux-libre, +le système d'initialisation Shepherd (@pxref{Introduction,,, shepherd, The +GNU Shepherd Manual}), les outils GNU et la chaîne d'outils familière ainsi +que l'environnement graphique et les services systèmes de votre choix. -Guix System is available on all the above platforms except +Guix System est disponible sur toutes les plateformes ci-dessus à part @code{mips64el-linux}. @noindent @@ -525,31 +542,31 @@ sur la manière de nous aider. @cindex installer Guix @quotation Remarque -We recommend the use of this +Nous vous recommandons d'utiliser ce @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, -shell installer script} to install Guix on top of a running GNU/Linux -system, thereafter called a @dfn{foreign distro}.@footnote{This section is -concerned with the installation of the package manager, which can be done on -top of a running GNU/Linux system. If, instead, you want to install the -complete GNU operating system, @pxref{Installation du système}.} The script -automates the download, installation, and initial configuration of Guix. It -should be run as the root user. +script shell d'installation} pour installer Guix sur un système GNU/Linux +fonctionnel, que nous appelons une @dfn{distro externe}@footnote{Cette +section s'occupe de l'installation du gestionnaire de paquet, ce qui peut se +faire sur un système GNU/Linux existant. Si vous voulez plutôt installer le +système d'exploitation GNU complet, @pxref{Installation du système}.}. Le +script automatise le téléchargement, l'installation et la configuration +initiale de Guix. Vous devez l'exécuter en tant qu'utilisateur root. @end quotation -@cindex distro extérieure -@cindex répertoires liés aux distro extérieures -When installed on a foreign distro, GNU@tie{}Guix complements the available -tools without interference. Its data lives exclusively in two directories, -usually @file{/gnu/store} and @file{/var/guix}; other files on your system, -such as @file{/etc}, are left untouched. +@cindex distro externe +@cindex répertoires liés aux distro externes +Lorsqu'il est installé sur une distro externe, GNU@tie{}Guix complète les +outils disponibles sans interférence. Ses données se trouvent exclusivement +dans deux répertoires, typiquement @file{/gnu/store} et @file{/var/guix} ; +les autres fichiers de votre système comme @file{/etc} sont laissés intacts. Une fois installé, Guix peut être mis à jour en lançant @command{guix pull} (@pxref{Invoquer guix pull}). -If you prefer to perform the installation steps manually or want to tweak -them, you may find the following subsections useful. They describe the -software requirements of Guix, as well as how to install it manually and get -ready to use it. +Si vous préférez effectuer les étapes d'installation manuellement ou si vous +voulez les personnaliser, vous trouverez les sections suivantes utile. +Elles décrivent les prérequis logiciels pour Guix, ainsi que la manière de +l'installer manuellement et de se préparer à l'utiliser. @menu * Installation binaire:: Commencer à utiliser Guix en un rien de temps @@ -718,8 +735,8 @@ changer le chemin de recherche de Info). @item @cindex substituts, autorisations -To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its -mirrors (@pxref{Substituts}), authorize them: +Pour utiliser les substituts de @code{@value{SUBSTITUTE-SERVER}} ou l'un de +ses miroirs (@pxref{Substituts}), autorisez-les : @example # guix archive --authorize < \ @@ -756,7 +773,7 @@ make guix-binary.@var{system}.tar.xz @end example @noindent -...@: which, in turn, runs: +…@: ce qui à son tour lance : @example guix pack -s @var{system} --localstatedir \ @@ -775,13 +792,13 @@ fichiers @file{README} et @file{INSTALL} dans l'arborescence des sources de Guix pour plus de détails. @cindex site officiel -GNU Guix is available for download from its website at -@url{https://www.gnu.org/software/guix/}. +GNU Guix est disponible au téléchargement depuis son site web sur +@url{http://www.gnu.org/software/guix/}. GNU Guix dépend des paquets suivants : @itemize -@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x; +@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x, @item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version 0.1.0 ou supérieure, @item @@ -795,7 +812,7 @@ version 0.1.0 ou supérieure, @c FIXME: Specify a version number once a release has been made. @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou ultérieur, -@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}; +@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}, @item @url{http://zlib.net, zlib}, @item @url{http://www.gnu.org/software/make/, GNU Make}. @end itemize @@ -892,16 +909,16 @@ le fichier @file{test-suite.log}. Précisez la version de Guix utilisée ainsi que les numéros de version de ses dépendances (@pxref{Prérequis}) dans votre message. -Guix also comes with a whole-system test suite that tests complete Guix -System instances. It can only run on systems where Guix is already -installed, using: +Guix possède aussi une suite de tests de systèmes complets qui test des +instances complètes du système Guix. Elle ne peut être lancée qui sur un +système où Guix est déjà installé, avec : @example make check-system @end example @noindent -Ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble +ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble des tests à lancer : @example @@ -1208,8 +1225,8 @@ les machines de construction correspondantes. @end table @end deftp -The @command{guix} command must be in the search path on the build -machines. You can check whether this is the case by running: +La commande @code{guix} doit être dans le chemin de recherche des machines +de construction. Vous pouvez vérifier si c'est le cas en lançant : @example ssh build-machine guix repl --version @@ -1288,11 +1305,11 @@ cette commande sur le nœud principal : @cindex SELinux, politique du démon @cindex contrôle d'accès obligatoire, SELinux @cindex sécurité, guix-daemon -Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can -be installed on a system where SELinux is enabled, in order to label Guix -files and to specify the expected behavior of the daemon. Since Guix System -does not provide an SELinux base policy, the daemon policy cannot be used on -Guix System. +Guix inclus un fichier de politique SELinux dans @file{etc/guix-daemon.cil} +qui peut être installé sur un système où SELinux est activé pour que les +fichiers Guix soient étiquetés et pour spécifier le comportement attendu du +démon. Comme Guix System ne fournit pas de politique SELinux de base, la +politique du démon ne peut pas être utilisée sur le système Guix. @subsubsection Installer la politique SELinux @cindex SELinux, installation de la politique @@ -1439,9 +1456,9 @@ distante @code{set-build-options} (@pxref{Le dépôt}). @item --substitute-urls=@var{urls} @anchor{daemon-substitute-urls} -Consider @var{urls} the default whitespace-separated list of substitute -source URLs. When this option is omitted, -@indicateurl{https://@value{SUBSTITUTE-SERVER}} is used. +Considérer @var{urls} comme la liste séparée par des espaces des URL des +sources de substituts par défaut. Lorsque cette option est omise, +@indicateurl{https://@value{SUBSTITUTE-SERVER}} est utilisé. Cela signifie que les substituts sont téléchargés depuis les @var{urls}, tant qu'ils sont signés par une signature de confiance (@pxref{Substituts}). @@ -1519,7 +1536,7 @@ ensuite elle peut être modifiée par les clients, par exemple par l'option @code{--verbosity} de @command{guix build} (@pxref{Invoquer guix build}). @item --chroot-directory=@var{rép} -Ajouter @var{rép} au chroot de construction +Ajouter @var{rép} au chroot de construction. Cela peut changer le résultat d'un processus de construction — par exemple s'il utilise une dépendance facultative trouvée dans @var{rép} lorsqu'elle @@ -1651,15 +1668,16 @@ connexions sur le socket Unix-domain situé à @node Réglages applicatifs @section Réglages applicatifs -@cindex distro extérieure -When using Guix on top of GNU/Linux distribution other than Guix System---a -so-called @dfn{foreign distro}---a few additional steps are needed to get -everything in place. Here are some of them. +@cindex distro externe +Lorsque vous utilisez Guix par dessus une distribution GNU/Linux qui n'est +pas Guix System — ce qu'on appelle une @dfn{distro externe} — quelques +étapes supplémentaires sont requises pour que tout soit en place. En voici +certaines. @subsection Régionalisation @anchor{locales-and-locpath} -@cindex locales, when not on Guix System +@cindex régionalisation, en dehors de Guix System @vindex LOCPATH @vindex GUIX_LOCPATH Les paquets installés @i{via} Guix n'utiliseront pas les données de @@ -1851,11 +1869,12 @@ lui-même, la bibliothèque C de GNU (les en-têtes et les binaires, plus les symboles de débogage dans la sortie @code{debug}), Binutils et une enveloppe pour l'éditeur de liens. -The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches -passed to the linker, add corresponding @code{-rpath} arguments, and invoke -the actual linker with this new set of arguments. You can instruct the -wrapper to refuse to link against libraries not in the store by setting the -@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}. +Le rôle de l'enveloppe est d'inspecter les paramètres @code{-L} et @code{-l} +passés à l'éditeur de liens, d'ajouter des arguments @code{-rpath} +correspondants et d'invoquer le véritable éditeur de liens avec ce nouvel +ensemble d'arguments. Vous pouvez dire à l'enveloppe de refuser de lier les +programmes à des bibliothèques en dehors du dépôt en paramétrant la variable +d'environnement @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} sur @code{no}. @c TODO What else? @@ -1863,11 +1882,11 @@ wrapper to refuse to link against libraries not in the store by setting the @node Installation du système @chapter Installation du système -@cindex installing Guix System +@cindex installer Guix System @cindex Guix System, installation -This section explains how to install Guix System on a machine. Guix, as a -package manager, can also be installed on top of a running GNU/Linux system, -@pxref{Installation}. +Cette section explique comment installer Guix System sur une machine. Guix, +en tant que gestionnaire de paquets, peut aussi être installé sur un système +GNU/Linux déjà installé, @pxref{Installation}. @ifinfo @quotation Remarque @@ -1889,34 +1908,26 @@ manuel ouvert. * Installation depuis une clef USB ou un DVD:: Préparer le média d'installation. * Préparer l'installation:: Réseau, partitionnement, etc. -* Effectuer l'installation:: Pour de vrai. -* Installing Guix in a VM:: Guix System playground. +* Installation graphique guidée:: Installation graphique facile. +* Installation manuelle:: Installation manuelle pour les sorciers. +* Après l'installation du système:: Une fois que l'installation a + réussi. +* Installer Guix dans une VM:: Jouer avec le système Guix. * Construire l'image d'installation:: D'où vient tout cela. @end menu @node Limitations @section Limitations -As of version @value{VERSION}, Guix System is not production-ready. It may -contain bugs and lack important features. Thus, if you are looking for a -stable production system that respects your freedom as a computer user, a -good solution at this point is to consider -@url{http://www.gnu.org/distros/free-distros.html, one of the more -established GNU/Linux distributions}. We hope you can soon switch to the -Guix System without fear, of course. In the meantime, you can also keep -using your distribution and try out the package manager on top of it -(@pxref{Installation}). +We consider Guix System to be ready for a wide range of ``desktop'' and +server use cases. The reliability guarantees it provides---transactional +upgrades and rollbacks, reproducibility---make it a solid foundation. -Avant de procéder à l'installation, soyez conscient de ces limitations les -plus importantes qui s'appliquent à la version @value{VERSION} : +Nevertheless, before you proceed with the installation, be aware of the +following noteworthy limitations applicable to version @value{VERSION}: @itemize @item -Le procédé d'installation n'a pas d'interface utilisateur graphique et -requiert une certaine familiarité avec GNU/Linux (voir les sous-sections -suivantes pour avoir un aperçu de ce que cela signifie). - -@item LVM (gestionnaire de volumes logiques) n'est pas supporté. @item @@ -1924,30 +1935,29 @@ De plus en plus de services systèmes sont fournis (@pxref{Services}) mais certains manquent toujours cruellement. @item -More than 8,500 packages are available, but you might occasionally find that -a useful package is missing. - -@item -GNOME, Xfce, LXDE et Enlightenment sont disponibles (@pxref{Services de bureaux}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11. -cependant, certaines applications graphiques peuvent manquer, ainsi que KDE. +GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Services de bureaux}), as well as a number of X11 window managers. However, KDE is +currently missing. @end itemize -Vous êtes avertis ! Mais plus qu'un avertissement, c'est une invitation à -rapporter les problèmes (et vos succès !) et à nous rejoindre pour améliorer -la distribution. @xref{Contribuer}, pour plus d'info. +More than a disclaimer, this is an invitation to report issues (and success +stories!), and to join us in improving it. @xref{Contribuer}, for more +info. @node Considérations matérielles @section Considérations matérielles -@cindex hardware support on Guix System -GNU@tie{}Guix focuses on respecting the user's computing freedom. It builds -around the kernel Linux-libre, which means that only hardware for which free -software drivers and firmware exist is supported. Nowadays, a wide range of -off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to -graphics cards to scanners and Ethernet controllers. Unfortunately, there -are still areas where hardware vendors deny users control over their own -computing, and such hardware is not supported on Guix System. +@cindex prise en charge du matériel sur Guix System +GNU@tie{}Guix se concentre sur le respect des libertés de ses utilisateurs. +Il est construit autour du noyau Linux-libre, ce qui signifie que seuls les +matériels pour lesquels des pilotes logiciels et des microgiciels libres +sont disponibles sont pris en charge. De nos jours, une grande gamme de +matériel qu'on peut acheter est prise en charge par GNU/Linux-libre — des +claviers aux cartes graphiques en passant par les scanners et les +contrôleurs Ethernet. Malheureusement, il reste des produit dont les +fabricants refusent de laisser le contrôle aux utilisateurs sur leur propre +utilisation de l'ordinateur, et ces matériels ne sont pas pris en charge par +Guix System. @cindex WiFi, support matériel One of the main areas where free drivers or firmware are lacking is WiFi @@ -1956,7 +1966,7 @@ devices. WiFi devices known to work include those using Atheros chips driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver. Free firmware exists for both and is available out-of-the-box on Guix -System, as part of @var{%base-firmware} (@pxref{Référence de système d'exploitation, +System, as part of @code{%base-firmware} (@pxref{Référence de système d'exploitation, @code{firmware}}). @cindex RYF, Respects Your Freedom @@ -1975,7 +1985,7 @@ leur support dans GNU/Linux. @section Installation depuis une clef USB ou un DVD Une image d'installation ISO-9660 téléchargeable depuis -@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{système}.iso.xz} +@indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{système}.iso.xz} peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est l'une de ces valeurs : @@ -1992,8 +2002,8 @@ Assurez-vous de télécharger les fichiers @file{.sig} associés et de vérifier l'authenticité de l'image avec, de cette manière : @example -$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig -$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig +$ wget https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig +$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig @end example Si cette commande échoue parce que vous n'avez pas la clef publique requise, @@ -2021,7 +2031,7 @@ Pour copier l'image sur une clef USB, suivez ces étapes : Décompressez l'image avec la commande @command{xz} : @example -xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz +xz -d guix-system-install-@value{VERSION}.@var{système}.iso.xz @end example @item @@ -2030,7 +2040,7 @@ son nom d'appareil. En supposant que la clef usb est connue sous le nom de @file{/dev/sdX}, copiez l'image avec : @example -dd if=guixsd-install-@value{VERSION}.@var{system}.iso of=/dev/sdX +dd if=guix-system-install-@value{VERSION}.@var{système}.iso of=/dev/sdX sync @end example @@ -2047,7 +2057,7 @@ Pour copier l'image sur un DVD, suivez ces étapes : Décompressez l'image avec la commande @command{xz} : @example -xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz +xz -d guix-system-install-@value{VERSION}.@var{système}.iso.xz @end example @item @@ -2056,7 +2066,7 @@ En supposant que le DVD soit connu sont le nom de @file{/dev/srX}, copiez l'image avec : @example -growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.@var{system}.iso +growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{système}.iso @end example Accéder à @file{/dev/srX} requiert généralement les privilèges @@ -2070,28 +2080,26 @@ démarrer depuis la clef USB ou le DVD. Pour cela, vous devrez généralement entrer dans le menu de démarrage BIOS ou UEFI, où vous pourrez choisir de démarrer sur la clef USB. -@xref{Installing Guix in a VM}, if, instead, you would like to install Guix -System in a virtual machine (VM). +@xref{Installer Guix dans une VM}, si, à la place, vous souhaitez installer +Guix System dans une machine virtuelle (VM). @node Préparer l'installation @section Préparer l'installation -Once you have successfully booted your computer using the installation -medium, you should end up with the welcome page of the graphical installer. -The graphical installer is a text-based user interface built upon the newt -library. It shall guide you through all the different steps needed to -install GNU@tie{}Guix System. However, as the graphical installer is still -under heavy development, you might want to fallback to the original, shell -based install process, by switching to TTYs 3 to 6 with the shortcuts -CTRL-ALT-F[3-6]. The following sections describe the installation procedure -assuming you're using one of those TTYs. They are configured and can be used -to run commands as root. - -TTY2 shows this documentation, browsable using the Info reader commands -(@pxref{Top,,, info-stnd, Stand-alone GNU Info}). The installation system -runs the GPM mouse daemon, which allows you to select text with the left -mouse button and to paste it with the middle button. +Une fois que vous avez démarré, vous pouvez utiliser l'installateur +graphique, qui rend facile la prise en main (@pxref{Installation graphique guidée}). Autrement, si vous êtes déjà familier avec GNU/Linux et que +vous voulez plus de contrôle que ce que l'installateur graphique ne fournit, +vous pouvez choisir le processus d'installation « manuel » (@pxref{Installation manuelle}). + +L'installateur graphique est disponible sur le TTY1. Vous pouvez obtenir +des shells root sur les TTY 3 à 6 en tapant @kbd{ctrl-alt-f3}, +@kbd{ctrl-alt-f4} etc. Le TTY2 affiche cette documentation que vous pouvez +atteindre avec @kbd{ctrl-alt-f2}. On peut naviguer dans la documentation +avec les commandes du lecteur Info (@pxref{Top,,, info-stnd, Stand-alone GNU +Info}). Le démon de souris GPM tourne sur le système d'installation, ce qui +vous permet de sélectionner du texte avec le bouton gauche de la souris et +de le coller en appuyant sur la molette. @quotation Remarque L'installation nécessite un accès au réseau pour que les dépendances @@ -2099,12 +2107,71 @@ manquantes de votre configuration système puissent être téléchargées. Voye la section « réseau » plus bas. @end quotation -The installation system includes many common tools needed for this task. -But it is also a full-blown Guix System, which means that you can install -additional packages, should you need it, using @command{guix package} +@node Installation graphique guidée +@section Installation graphique guidée + +L'installateur graphique est une interface utilisateur en mode texte. Il +vous guidera, avec des boîtes de dialogue, le long des étapes requises pour +installer GNU@tie{}Guix System. + +La première boîte de dialogue vous permet de paramétrer le système comme +vous le souhaitez pendant l'installation : vous pouvez choisir la langue, la +disposition du clavier et paramétrer le réseau, qui sera utilisé pendant +l'installation. L'image ci-dessous montre le dialogue pour le réseau. + +@image{images/installer-network,5in,, paramétrage du réseau avec +l'installateur graphique} + +Les étapes suivantes vous permettent de partitionner votre disque dur, comme +le montre l'image ci-dessous, de choisir si vous voulez ou non utiliser des +systèmes de fichiers chiffrés, de saisir le nom d'hôte et le mot de passe +root et de créer un compte supplémentaire, entre autres choses. + +@image{images/installer-partitions,5in,, partitionnement du disque avec +l'installateur graphique} + +Remarquez que, à tout moment, l'installateur vous permet de sortir de +l'étape d'installation actuelle et de recommencer une étape précédente, +comme le montre l'image ci-dessous. + +@image{images/installer-resume,5in,, reprise du processus d'installation} + +Une fois que vous avez fini, l'installateur produit une configuration de +système d'exploitation et vous la montre (@pxref{Utiliser le système de configuration}). À ce moment, vous pouvez appuyer sur « OK » et l'installation +continuera. Lorsqu'elle aura réussi, vous pourrez redémarrer sur le nouveau +système et vous amuser. @xref{Après l'installation du système}, pour la suite des +festivités ! + + +@node Installation manuelle +@section Installation manuelle + +Cette section décrit comme vous pourriez installe « manuellement » +GNU@tie{}Guix System sur votre machine. Cette option nécessite que vous +soyez familier avec GNU/Linux, le shell et avec les outils d'administration +usuels. Si vous pensez que ce n'est pas pour vous, pensez à utiliser +l'installateur graphique (@pxref{Installation graphique guidée}). + +Le système d'installation fournit des shells root sur les TTY 3 à 6 ; +appuyez sur @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4} etc pour y accéder. Il +inclus plusieurs outils usuels pour requis pour cette tâche. Mais c'est +aussi un système Guix complet, ce qui signifie que vous pouvez installer des +paquets supplémentaires si vous en avez besoin, avec @command{guix package} (@pxref{Invoquer guix package}). -@subsection Disposition du clavier +@menu +* Disposition du clavier réseau et partitionnement:: Paramètres initiaux. +* Effectuer l'installation:: Installer. +@end menu + +@node Disposition du clavier réseau et partitionnement +@subsection Disposition du clavier réseau et partitionnement + +Avant que vous ne puissiez installer le système, vous voudrez sans doute +ajuster la disposition du clavier, paramétrer le réseau et partitionner le +disque dur cible. Cette section vous guidera à travers tout cela. + +@subsubsection Disposition du clavier @cindex disposition du clavier L'image d'installation utilise la disposition clavier qwerty (US). Si vous @@ -2119,7 +2186,7 @@ Consultez les fichiers dans @file{/run/current-system/profile/share/keymaps} pour trouver une liste des dispositions disponibles. Lancez @command{man loadkey} pour plus d'informations. -@subsection Réseau +@subsubsection Réseau Lancez la commande suivante pour voir comment vos interfaces réseau sont appelées : @@ -2215,7 +2282,7 @@ herd start ssh-daemon Assurez-vous soit de définir un mot de passe avec @command{passwd}, soit de configurer l'authentification par clef OpenSSH avant de vous connecter. -@subsection Partitionnement +@subsubsection Partitionnement À moins que vous ne l'ayez déjà fait, l'étape suivante consiste à partitionner le disque puis à formater les partitions cibles. @@ -2237,10 +2304,10 @@ disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual}). @cindex EFI, installation @cindex UEFI, installation @cindex ESP, partition système EFI -If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System -Partition} (ESP) is required. This partition can be mounted at -@file{/boot/efi} for instance and must have the @code{esp} flag set. E.g., -for @command{parted}: +Si vous souhaitez à la place utilise GRUB pour système EFI, vous devrez +avoir une @dfn{partition système EFI} (ESP) en FAT32. Cette partition peut +être montée dans @file{/boot/efi} par exemple et doit avoir le drapeau +@code{esp}. P.@: ex.@: pour @command{parted} : @example parted /dev/sda set 1 esp on @@ -2257,12 +2324,13 @@ vous devriez probablement effectuer une installation EFI, avec d'information sur le chargeur d'amorçage. @end quotation -Once you are done partitioning the target hard disk drive, you have to -create a file system on the relevant partition(s)@footnote{Currently Guix -System only supports ext4 and btrfs file systems. In particular, code that -reads file system UUIDs and labels only works for these file system -types.}. For the ESP, if you have one and assuming it is @file{/dev/sda1}, -run: +Une fois que vous avez fini le partitionnement du disque dur cible, vous +devez créer un système de fichier sur les partitions@footnote{Actuellement +Guix System ne supporte que les systèmes de fichiers ext4 et btrfs. En +particulier, le code qui lit les UUID des systèmes de fichiers et les +étiquettes ne fonctionne que pour ces types de systèmes de fichiers.}. Pour +l'ESP, si vous en avez une et en supposant que ce soit @file{/dev/sda1}, +lancez : @example mkfs.fat -F32 /dev/sda1 @@ -2301,10 +2369,11 @@ l'étiquette du système de fichiers racine) : mount LABEL=my-root /mnt @end example -Also mount any other file systems you would like to use on the target system -relative to this path. If you have opted for @file{/boot/efi} as an EFI -mount point for example, mount it at @file{/mnt/boot/efi} now so it is found -by @code{guix system init} afterwards. +Montez aussi tous les systèmes de fichiers que vous voudriez utiliser sur le +système cible relativement à ce chemin. Si vous avez choisi d'avoir un +@file{/boot/efi} comme point de montage EFI par exemple, montez-la sur +@file{/mnt/boot/efi} maintenant pour qu'elle puisse être trouvée par +@code{guix system init} ensuite. Enfin, si vous souhaitez utiliser une ou plusieurs partitions de swap (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference @@ -2341,7 +2410,7 @@ chiffrement protégera aussi le fichier d'échange, comme n'importe quel fichier de ce système de fichiers. @node Effectuer l'installation -@section Effectuer l'installation +@subsection Effectuer l'installation Lorsque la partition cible est prête et que les autres partitions sont montées, on est prêt à commencer l'installation. Commencez par : @@ -2386,13 +2455,15 @@ configuration, en particulier : @itemize @item -Make sure the @code{bootloader-configuration} form refers to the target you -want to install GRUB on. It should mention @code{grub-bootloader} if you -are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for -newer UEFI systems. For legacy systems, the @code{target} field names a -device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted -EFI partition, like @code{/boot/efi}; do make sure the path is currently -mounted and a @code{file-sytem} entry is specified in your configuration. +Assurez-vous que la forme @code{bootloader-configuration} se réfère à la +cible où vous voulez installer GRUB. Elle devrait aussi mentionner +@code{grub-bootloader} si vous installer GRUB en mode BIOS (ou « legacy ») +ou @code{grub-efi-bootloader} pour les système UEFI plus récents. Pour les +anciens systèmes, le champs @code{target} contient un périphérique comme +@code{/dev/sda} ; pour les systèmes UEFI il contient un chemin vers une +partition EFI montée, comme @code{/boot/efi}, et assurez-vous bien que ce +chemin est monté et qu'il y a une entrée @code{file-system} dans votre +configuration. @item Assurez-vous que les étiquettes de vos systèmes de fichiers correspondent @@ -2419,15 +2490,21 @@ Cela copie tous les fichiers nécessaires et installe GRUB sur @option{--no-bootloader}. Pour plus d'informations, @pxref{Invoquer guix system}. Cette commande peut engendrer des téléchargements ou des constructions pour les paquets manquants, ce qui peut prendre du temps. -Une fois que cette commande a terminée — et on l'espère réussi ! — vous +Une fois que cette commande a terminé — et on l'espère réussi ! — vous pouvez lancer @command{reboot} et démarrer sur votre nouveau système. Le mot de passe @code{root} est d'abord vide ; les mots de passe des autres utilisateurs doivent être initialisés avec la commande @command{passwd} en tant que @code{root}, à mois que votre configuration ne spécifie autre chose (@pxref{user-account-password, mot de passe des comptes utilisateurs}). +@xref{Après l'installation du système}, pour la suite ! + -@cindex upgrading Guix System -From then on, you can update the system whenever you want by running, say: +@node Après l'installation du système +@section Après l'installation du système + +Bravo ! Vous avez maintenant redémarré sur votre système Guix ! À partir +de maintenant, vous pouvez mettre à jour le système quand vous voudrez, avec +: @example guix pull @@ -2435,38 +2512,41 @@ sudo guix system reconfigure /etc/config.scm @end example @noindent -This builds a new system generation with the latest packages and services -(@pxref{Invoquer guix system}). We recommend doing that regularly so that -your system includes the latest security updates (@pxref{Mises à jour de sécurité}). +Cela crée une nouvelle génération du système avec les derniers paquets et +services (@pxref{Invoquer guix system}). Nous vous recommandons de le faire +régulièrement pour que votre système inclue les dernières misse à jour de +sécurité (@pxref{Mises à jour de sécurité}). @c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>. @quotation Remarque -@cindex sudo vs. @command{guix pull} -Note that @command{sudo guix} runs your user's @command{guix} command and -@emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged. To -explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}. +@cindex sudo vs.@: @command{guix pull} +Remarquez que @command{sudo guix} exécute la commande @command{guix} de +votre utilisateur et @emph{non} celle de root, parce que @command{sudo} ne +change pas @code{PATH}. Pour utiliser explicitement le @command{guix} de +root, tapez @command{sudo -i guix @dots{}}. @end quotation -Join us on @code{#guix} on the Freenode IRC network or on -@email{guix-devel@@gnu.org} to share your experience---good or not so good. +Rejoignez-nous sur @code{#guix} sur le réseau IRC Freenode ou sur +@file{guix-devel@@gnu.org} pour partager votre expérience ! -@node Installing Guix in a VM -@section Installing Guix in a Virtual Machine -@cindex virtual machine, Guix System installation +@node Installer Guix dans une VM +@section Installer Guix sur une machine virtuelle + +@cindex machine virtuelle, installation de Guix System @cindex serveur privé virtuel (VPS) @cindex VPS (serveur privé virtuel) -If you'd like to install Guix System in a virtual machine (VM) or on a -virtual private server (VPS) rather than on your beloved machine, this -section is for you. +Si vous souhaitez installer Guix System sur une machine virtuelle (VM) ou un +serveur privé virtuel (VPS) plutôt que sur votre machine chérie, cette +section est faite pour vous. -To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a -disk image, follow these steps: +Pour démarrer une VM @uref{http://qemu.org/,QEMU} pour installer Guix System +sur une image disque, suivez ces étapes : @enumerate @item -First, retrieve and decompress the Guix system installation image as -described previously (@pxref{Installation depuis une clef USB ou un DVD}). +Tout d'abord récupérez et décompressez l'image d'installation du système +Guix comme décrit précédemment (@pxref{Installation depuis une clef USB ou un DVD}). @item Créez une image disque qui contiendra le système installé. Pour créer une @@ -2486,11 +2566,11 @@ Démarrez l'image d'installation USB dans une VM : @example qemu-system-x86_64 -m 1024 -smp 1 \ -net user -net nic,model=virtio -boot menu=on \ - -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \ + -drive file=guix-system-install-@value{VERSION}.@var{système}.iso \ -drive file=guixsd.img @end example -L'ordre des périphérique est important +L'ordre des périphérique est important. Dans la console de la VM, appuyez rapidement sur @kbd{F12} pour entrer dans le menu de démarrage. Ensuite appuyez sur @kbd{2} et la touche @kbd{Entrée} @@ -2502,8 +2582,9 @@ d'installation. @xref{Préparer l'installation}, et suivez les instructions. @end enumerate -Once installation is complete, you can boot the system that's on your -@file{guixsd.img} image. @xref{Running Guix in a VM}, for how to do that. +Une fois l'installation terminée, vous pouvez démarrer le système dans votre +image @file{guixsd.img}. @xref{Lancer Guix dans une VM}, pour une manière de +faire. @node Construire l'image d'installation @section Construire l'image d'installation @@ -2609,12 +2690,12 @@ processus @command{guix package} est terminé pendant la transaction ou si une panne de courant arrive pendant la transaction, le profil de l'utilisateur reste dans son état précédent et reste utilisable. -In addition, any package transaction may be @emph{rolled back}. So, if, for -example, an upgrade installs a new version of a package that turns out to -have a serious bug, users may roll back to the previous instance of their -profile, which was known to work well. Similarly, the global system -configuration on Guix is subject to transactional upgrades and roll-back -(@pxref{Utiliser le système de configuration}). +En plus, il est possible @emph{d'annuler} toute transaction sur les +paquets. Donc si par exemple un mise à jour installe une nouvelle version +d'un paquet qui révèle un bogue sérieux, vous pouvez revenir en arrière à +l'instance précédente de votre profil que vous saviez bien fonctionner. De +même, la configuration globale du système dans Guix est sujette aux mises à +jour transactionnelles et aux annulations (@pxref{Utiliser le système de configuration}). Tous les paquets du dépôt des paquets peut être @emph{glané}. Guix peut déterminer quels paquets sont toujours référencés par les profils des @@ -2975,10 +3056,11 @@ paquets : @item --search=@var{regexp} @itemx -s @var{regexp} @cindex chercher des paquets -List the available packages whose name, synopsis, or description matches -@var{regexp} (in a case-insensitive fashion), sorted by relevance. Print -all the metadata of matching packages in @code{recutils} format (@pxref{Top, -GNU recutils databases,, recutils, GNU recutils manual}). +Lister les paquets disponibles dont le nom, le synopsis ou la description +correspondent à la @var{regexp} (en étant insensible à la casse), triés par +pertinence. Afficher toutes les métadonnées des paquets correspondants au +format @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU +recutils manual}). Cela permet à des champs spécifiques d'être extraits avec la commande @command{recsel}, par exemple : @@ -3184,13 +3266,13 @@ exemple résultent aussi de la construction d'une dérivation qui peut aussi @cindex hydra @cindex ferme de construction -The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official -build farm that builds packages from Guix continuously for some -architectures, and makes them available as substitutes. This is the default -source of substitutes; it can be overridden by passing the -@option{--substitute-urls} option either to @command{guix-daemon} -(@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) or -to client tools such as @command{guix package} +Le serveur @code{@value{SUBSTITUTE-SERVER}} est une interface à la ferme de +construction officielle qui construit des paquets pour Guix continuellement +pour certaines architectures et les rend disponibles en tant que +substituts. C'est la source par défaut des substituts ; elle peut être +modifiée en passant l'option @option{--substitute-urls} soit à +@command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon +--substitute-urls}}) soit aux outils clients comme @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option}). Les URL des substituts peuvent être soit en HTTP soit en HTTPS. Le HTTPS @@ -3215,28 +3297,28 @@ activer les substituts de n'importe quel autre serveur de substituts. @cindex substituts, autorisations @cindex liste de contrôle d'accès (ACL), pour les substituts @cindex ACL (liste de contrôle d'accès), pour les substituts -To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} -or a mirror thereof, you must add its public key to the access control list -(ACL) of archive imports, using the @command{guix archive} command -(@pxref{Invoquer guix archive}). Doing so implies that you trust -@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine -substitutes. +Pour permettre à Guix de télécharger les substituts depuis +@code{@value{SUBSTITUTE-SERVER}} ou un miroir, vous devez ajouter sa clef +publique à la liste de contrôle d'accès (ACL) des imports d'archives, avec +la commande @command{guix archive} (@pxref{Invoquer guix archive}). Cela +implique que vous faîtes confiance à @code{@value{SUBSTITUTE-SERVER}} pour +ne pas être compromis et vous servir des substituts authentiques. -The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with -Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where -@var{prefix} is the installation prefix of Guix. If you installed Guix from -source, make sure you checked the GPG signature of -@file{guix-@value{VERSION}.tar.gz}, which contains this public key file. -Then, you can run something like this: +La clef publique pour @code{@value{SUBSTITUTE-SERVER}} est installée avec +Guix, dans @code{@var{préfixe}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, où +@var{préfixe} est le préfixe d'installation de Guix. Si vous avez installé +Guix depuis les sources, assurez-vous d'avoir vérifié la signature GPG de +@file{guix-@value{VERSION}.tar.gz} qui contient ce fichier de clef +publique. Ensuite vous pouvez lancer quelque chose comme ceci : @example # guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub @end example @quotation Remarque -Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an -independent build farm also run by the project, reachable at -@indicateurl{https://mirror.hydra.gnu.org}. +De même, le fichier @file{hydra.gnu.org.pub} contient la clef publique d'une +ferme de construction indépendante qui appartient aussi au projet, +disponible sur @indicateurl{https://mirror.hydra.gnu.org}. @end quotation Une fois que cela est en place, la sortie d'une commande comme @code{guix @@ -3266,8 +3348,9 @@ $ guix build emacs --dry-run @end example @noindent -This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are -usable and will be downloaded, when possible, for future builds. +Cela indique que les substituts de @code{@value{SUBSTITUTE-SERVER}} sont +utilisables et seront téléchargés, si possible, pour les futures +constructions. @cindex substituts, comment les désactiver Le mécanisme de substitution peut être désactivé globalement en lançant @@ -3352,15 +3435,17 @@ fournis par un serveur. @subsection De la confiance en des binaires @cindex confiance, en des binaires pré-construits -Today, each individual's control over their own computing is at the mercy of -institutions, corporations, and groups with enough power and determination -to subvert the computing infrastructure and exploit its weaknesses. While -using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we -encourage users to also build on their own, or even run their own build -farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting -target. One way to help is by publishing the software you build using -@command{guix publish} so that others have one more choice of server to -download substitutes from (@pxref{Invoquer guix publish}). +De nos jours, le contrôle individuel sur son utilisation propre de +l'informatique est à la merci d'institutions, de sociétés et de groupes avec +assez de pouvoir et de détermination pour contourner les infrastructures +informatiques et exploiter leurs faiblesses. Bien qu'utiliser les +substituts de @code{@value{SUBSTITUTE-SERVER}} soit pratique, nous +encourageons les utilisateurs à construire aussi par eux-mêmes, voir à faire +tourner leur propre ferme de construction, pour que +@code{@value{SUBSTITUTE-SERVER}} devienne une cible moins intéressante. Une +façon d'aider est de publier les logiciels que vous construisez avec +@command{guix publish} pour que les autres aient plus de choix de serveurs +où télécharger les substituts (@pxref{Invoquer guix publish}). Guix possède les fondations pour maximiser la reproductibilité logicielle (@pxref{Fonctionnalités}). Dans la plupart des cas, des constructions @@ -3456,7 +3541,8 @@ racines du ramasse-miettes (ou « racines du GC » pour faire court) inclue les profils par défaut des utilisateurs ; par défaut les liens symboliques sous @file{/var/guix/gcroots} représentent ces racines du GC. De nouvelles racines du GC peuvent être ajoutées avec la @command{guix build -- root} par -exemple (@pxref{Invoquer guix build}). +exemple (@pxref{Invoquer guix build}). La commande @command{guix gc +--list-roots} permet de les lister. Avant de lancer @code{guix gc --collect-garbage} pour faire de la place, c'est souvent utile de supprimer les anciennes génération des profils @@ -3472,12 +3558,13 @@ avez besoin d'espace disque. Par exemple pour garantir qu'au moins guix gc -F 5G @end example -It is perfectly safe to run as a non-interactive periodic job -(@pxref{Exécution de tâches planifiées}, for how to set up such a job). Running -@command{guix gc} with no arguments will collect as much garbage as it can, -but that is often inconvenient: you may find yourself having to rebuild or -re-download software that is ``dead'' from the GC viewpoint but that is -necessary to build other pieces of software---e.g., the compiler tool chain. +Il est parfaitement possible de le lancer comme une tâche périodique +non-interactive (@pxref{Exécution de tâches planifiées} pour apprendre comment +paramétrer une telle tâche). Lancer @command{guix gc} sans argument +ramassera autant de miettes que possible mais ça n'est pas le plus pratique +: vous pourriez vous retrouver à reconstruire ou re-télécharger des +logiciels « inutilisés » du point de vu du GC mais qui sont nécessaires pour +construire d'autres logiciels — p.@: ex.@: la chaîne de compilation. La command @command{guix gc} a trois modes d'opération : il peut être utilisé pour glaner des fichiers inutilisés (par défaut), pour supprimer des @@ -3508,19 +3595,38 @@ comme @code{500MiB} comme décrit ci-dessus. Lorsque @var{libre} ou plus est disponible dans @file{/gnu/store} ne rien faire et s'arrêter immédiatement. +@item --delete-generations[=@var{durée}] +@itemx -d [@var{durée}] +Avant de commencer le glanage, supprimer toutes les générations plus vielles +que @var{durée}, pour tous les profils utilisateurs ; lorsque cela est lancé +en root, cela s'applique à tous les profils @emph{de tous les utilisateurs}. + +Par exemple, cette commande supprime toutes les générations de tous vos +profils plus vieilles que 2 mois (sauf s'il s'agit de la génération +actuelle) puis libère de l'espace jusqu'à atteindre au moins 10 Go d'espace +libre : + +@example +guix gc -d 2m -F 10G +@end example + @item --delete -@itemx -d +@itemx -D Essayer de supprimer tous les fichiers et les répertoires du dépôt spécifiés en argument. Cela échoue si certains des fichiers ne sont pas dans le dépôt ou s'ils sont toujours utilisés. @item --list-failures -Lister les éléments du dépôt qui correspondent à des échecs de construction +Lister les éléments du dépôt qui correspondent à des échecs de construction. Cela n'affiche rien à moins que le démon n'ait été démarré avec @option{--cache-failures} (@pxref{Invoquer guix-daemon, @option{--cache-failures}}). +@item --list-roots +Lister les racines du GC appartenant à l'utilisateur ; lorsque la commande +est lancée en root, lister @emph{toutes} les racines du GC. + @item --clear-failures Supprimer les éléments du dépôt spécifiés du cache des constructions échouées. @@ -3652,7 +3758,7 @@ Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix pull}. Par exemple, lorsque l'utilisateur @code{root} lance @command{guix pull}, cela n'a pas d'effet sur la version de Guix que vois @code{alice} et -vice-versa +vice-versa. Le résultat après avoir lancé @command{guix pull} est un @dfn{profil} disponible sous @file{~/.config/guix/current} contenant la dernière version @@ -3696,8 +3802,8 @@ Génération 3 13 juin 2018 23:31:07 (actuelle) 69 paquets mis à jour : borg@@1.1.6, cheese@@3.28.0, @dots{} @end example -@ref{Invoquer guix describe, @command{guix describe}} pour d'autres manières -de décrire le statut actuel de Guix. +@xref{Invoquer guix describe, @command{guix describe}}, pour d'autres +manières de décrire le statut actuel de Guix. Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils créés par @command{guix package} (@pxref{Invoquer guix package}). @@ -3718,9 +3824,9 @@ il supporte les options suivantes : @item --url=@var{url} @itemx --commit=@var{commit} @itemx --branch=@var{branche} -Télécharger le code depuis l'@var{url} spécifié, au @var{commit} donné (un -commit Git valide représenté par une chaîne hexadécimale) ou à la branche -@var{branch}. +Download code for the @code{guix} channel from the specified @var{url}, at +the given @var{commit} (a valid Git commit ID represented as a hexadecimal +string), or @var{branch}. @cindex @file{channels.scm}, fichier de configuration @cindex fichier de configuration pour les canaux @@ -3743,7 +3849,7 @@ Liste toutes les générations de @file{~/.config/guix/current} ou, si à @var{motif}. La syntaxe de @var{motif} est la même qu'avec @code{guix package --list-generations} (@pxref{Invoquer guix package}). -@ref{Invoquer guix describe}, pour une manière d'afficher des informations +@xref{Invoquer guix describe}, pour une manière d'afficher des informations sur la génération actuelle uniquement. @item --profile=@var{profil} @@ -3870,9 +3976,9 @@ logiciel libre}. Contactez-nous par courriel sur @email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos. @end quotation -To use a channel, write @code{~/.config/guix/channels.scm} to instruct -@command{guix pull} to pull from it @emph{in addition} to the default Guix -channel(s): +Pour utiliser un canal, écrivez dans @code{~/.config/guix/channels.scm} pour +dire à @command{guix pull} de récupérer votre canal personnel @emph{en plus} +des canaux par défaut de Guix : @vindex %default-channels @lisp @@ -3884,13 +3990,14 @@ channel(s): @end lisp @noindent -Note that the snippet above is (as always!)@: Scheme code; we use -@code{cons} to add a channel the list of channels that the variable -@code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, -guile, GNU Guile Reference Manual}). With this file in place, @command{guix -pull} builds not only Guix but also the package modules from your own -repository. The result in @file{~/.config/guix/current} is the union of -Guix with your own package modules: +Remarquez que le bout de code au-dessus est (comme toujours !)@: du code +Scheme ; nous utilisons @code{cons} pour ajouter un canal à la liste des +canaux que la variable @code{%default-channels} représente (@pxref{Pairs, +@code{cons} and lists,, guile, GNU Guile Reference Manual}). Avec ce +fichier en place, @command{guix pull} construit non seulement Guix mais +aussi les modules de paquets de votre propre dépôt. Le résultat dans +@file{~/.config/guix/current} est l'union de Guix et de vos propres modules +de paquets : @example $ guix pull --list-generations @@ -3917,49 +4024,51 @@ contient aussi bien Guix que les paquets du canal @code{my-personal-packages}, tandis que d'autres viennent du canal par défaut de Guix. -To create a channel, create a Git repository containing your own package -modules and make it available. The repository can contain anything, but a -useful channel will contain Guile modules that export packages. Once you -start using a channel, Guix will behave as if the root directory of that -channel's Git repository has been added to the Guile load path (@pxref{Load -Paths,,, guile, GNU Guile Reference Manual}). For example, if your channel -contains a file at @file{my-packages/my-tools.scm} that defines a Guile -module, then the module will be available under the name @code{(my-packages -my-tools)}, and you will be able to use it like any other module -(@pxref{Modules,,, guile, GNU Guile Reference Manual}). - -@cindex dependencies, channels -@cindex meta-data, channels -@subsection Declaring Channel Dependencies - -Channel authors may decide to augment a package collection provided by other -channels. They can declare their channel to be dependent on other channels -in a meta-data file @file{.guix-channel}, which is to be placed in the root -of the channel repository. - -The meta-data file should contain a simple S-expression like this: +Pour créer un canal, créez un dépôt Git contenant vos propres modules de +paquets et rendez-le disponible. Le dépôt peut contenir tout ce que vous +voulez, mais un canal utile contiendra des modules Guile qui exportent des +paquets. Une fois que vous avez démarré un canal, Guix se comportera comme +si le répertoire de la racine du dépôt Git de ce canal était ajouté au +chemin de chargement de Guile (@pxref{Load Paths,,, guile, GNU Guile +Reference Manual}). Par exemple, si votre canal contient un fichier +@file{mes-paquets/mes-outils.scm} qui définit un module Guile, le module +sera disponible sous le nom de @code{(mes-paquets mes-outils)} et vous +pourrez l'utiliser comme les autres modules (@pxref{Modules,,, guile, GNU +Guile Reference Manual}). + +@cindex dépendances, canaux +@cindex métadonnées, canaux +@subsection Déclarer des dépendances de canaux + +Les auteurs de canaux peuvent décider d'augmenter une collection de paquets +fournie par d'autres canaux. Ils peuvent déclarer leur canal comme +dépendant d'autres canaux dans le fichier de métadonnées +@file{.guix-channel} qui doit être placé à la racine de dépôt du canal. + +Le fichier de métadonnées devrait contenir une S-expression simple comme +cela : @lisp (channel (version 0) (dependencies (channel - (name some-collection) - (url "https://example.org/first-collection.git")) + (name une-collection) + (url "https://exemple.org/premiere-collection.git")) (channel - (name some-other-collection) - (url "https://example.org/second-collection.git") + (name some-autre-collection) + (url "https://exemple.org/deuxieme-collection.git") (branch "testing")))) @end lisp -In the above example this channel is declared to depend on two other -channels, which will both be fetched automatically. The modules provided by -the channel will be compiled in an environment where the modules of all -these declared channels are available. +Dans l'exemple ci-dessus, ce canal est déclaré comme dépendant de deux +autres canaux, qui seront récupérés automatiquement. Les modules fournis +par le canal seront compilés dans un environnement où les modules de tous +les canaux déclarés sont disponibles. -For the sake of reliability and maintainability, you should avoid -dependencies on channels that you don't control, and you should aim to keep -the number of dependencies to a minimum. +Pour des raisons de fiabilité et de maintenabilité, vous devriez éviter +d'avoir des dépendances sur des canaux que vous ne maîtrisez pas et vous +devriez ajouter le minimum de dépendances possible. @subsection Répliquer Guix @@ -4119,7 +4228,7 @@ Renvoie vrai si @var{obj} est un paquet inférieur. @deffnx {Procédure Scheme} inferior-package-transitive-native-search-paths @var{package} @deffnx {Procédure Scheme} inferior-package-search-paths @var{package} Ces procédures sont la contrepartie des accesseurs des enregistrements de -paquets (@pxref{Référence de paquet}). La plupart fonctionne en effectuant +paquets (@pxref{Référence des paquets}). La plupart fonctionne en effectuant des requêtes à l'inférieur dont provient @var{package}, donc l'inférieur doit toujours être disponible lorsque vous appelez ces procédures. @end deffn @@ -4364,8 +4473,8 @@ substituts (@pxref{Substituts}) et l'extrait dans @var{répertoire}. C'est une opération de bas niveau requise seulement dans de rares cas d'usage ; voir plus loin. -For example, the following command extracts the substitute for Emacs served -by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}: +Par exemple, la commande suivante extrait le substitut pour Emacs servi par +@code{@value{SUBSTITUTE-SERVER}} dans @file{/tmp/emacs} : @example $ wget -O - \ @@ -4387,19 +4496,20 @@ confiance. @c ********************************************************************* -@node Development -@chapter Development +@node Développement +@chapter Développement -@cindex software development -If you are a software developer, Guix provides tools that you should find -helpful---independently of the language you're developing in. This is what -this chapter is about. +@cindex développement logiciel +Si vous êtes développeur de logiciels, Guix fournit des outils que vous +devriez trouver utiles — indépendamment du langage dans lequel vous +développez. C'est ce dont parle ce chapitre. -The @command{guix environment} command provides a convenient way to set up -@dfn{development environments} containing all the dependencies and tools -necessary to work on the software package of your choice. The @command{guix -pack} command allows you to create @dfn{application bundles} that can be -easily distributed to users who do not run Guix. +La commande @command{guix environment} permet de créer des +@dfn{environnements de développement} confortables contenant toutes les +dépendances et les outils nécessaires pour travailler sur le paquet logiciel +de votre choix. La commande @command{guix pack} vous permet de créer des +@dfn{lots applicatifs} qui peuvent facilement être distribués à des +utilisateurs qui n'utilisent pas Guix. @menu * Invoquer guix environment:: Mettre en place des environnements de @@ -4465,7 +4575,7 @@ fi @end example @noindent -...@: or to browse the profile: +…@: ou de naviguer dans le profil : @example $ ls "$GUIX_ENVIRONMENT/bin" @@ -4511,13 +4621,13 @@ strace en plus : guix environment guix --ad-hoc git strace @end example -Sometimes it is desirable to isolate the environment as much as possible, -for maximal purity and reproducibility. In particular, when using Guix on a -host distro that is not Guix System, it is desirable to prevent access to -@file{/usr/bin} and other system-wide resources from the development -environment. For example, the following command spawns a Guile REPL in a -``container'' where only the store and the current working directory are -mounted: +Parfois il est souhaitable d'isoler l'environnement le plus possible, pour +une pureté et une reproductibilité maximale. En particulier, lorsque vous +utilisez Guix sur une distribution hôte qui n'est pas le système Guix, il +est souhaitable d'éviter l'accès à @file{/usr/bin} et d'autres ressources du +système depuis les environnements de développement. Par exemple, la +commande suivante crée un REPL Guile dans un « conteneur » où seuls le dépôt +et le répertoire de travail actuel sont montés : @example guix environment --ad-hoc --container guile -- guile @@ -4565,7 +4675,7 @@ Lancer : guix environment --ad-hoc -e '(@@ (gnu) %base-packages)' @end example -starts a shell with all the base system packages available. +démarre un shell où tous les paquets de base du système sont disponibles. Les commande au-dessus n'utilisent que les sorties par défaut des paquets donnés. Pour choisir d'autres sorties, on peut spécifier des pairs : @@ -4623,26 +4733,27 @@ qui apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à ajouter à l'environnement directement. @item --pure -Unset existing environment variables when building the new environment, -except those specified with @option{--inherit} (see below.) This has the -effect of creating an environment in which search paths only contain package -inputs. +Nettoie les variables d'environnement existantes lors de la construction du +nouvel environnement, sauf celles spécifiées par @option{--preserve} (voir +ci-dessous). Cela a pour effet de créer un environnement dans lequel les +chemins de recherche ne contiennent que des entrées de paquets. -@item --inherit=@var{regexp} -When used alongside @option{--pure}, inherit all the environment variables -matching @var{regexp}---in other words, put them on a ``white list'' of -environment variables that must be preserved. This option can be repeated -several times. +@item --preserve=@var{regexp} +@itemx -E @var{regexp} +Lorsque vous utilisez @option{--pure}, préserver les variables +d'environnement qui correspondent à @var{regexp} — en d'autres termes, cela +les met en « liste blanche » de variables d'environnement qui doivent être +préservées. Cette option peut être répétée plusieurs fois. @example -guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \ +guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \ -- mpirun @dots{} @end example -This example runs @command{mpirun} in a context where the only environment -variables defined are @code{PATH}, environment variables whose name starts -with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, -@code{USER}, etc.) +Cet exemple exécute @command{mpirun} dans un contexte où les seules +variables d'environnement défines sont @code{PATH}, les variables +d'environnement dont le nom commence par @code{SLURM}, ainsi que les +variables « importante » habituelles (@code{HOME}, @code{USER}, etc). @item --search-paths Affiche les définitions des variables d'environnement qui composent @@ -4659,9 +4770,11 @@ Lance @var{commande} dans un conteneur isolé. Le répertoire de travail actuel en dehors du conteneur est monté dans le conteneur. En plus, à moins de le changer avec @code{--user}, un répertoire personnel fictif est créé pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwd} est -configuré en conséquence. Le processus est lancé en tant que l'utilisateur -actuel en dehors du conteneur, mais a les privilèges root dans le contexte -du conteneur. +configuré en conséquence. + +Le processus est lancé en tant que l'utilisateur actuel en dehors du +conteneur. Dans le conteneur, il a le même UID et GID que l'utilisateur +actuel, à moins que vous ne passiez @option{--user} (voir ci-dessous). @item --network @itemx -N @@ -4689,8 +4802,9 @@ programmes de se comporter comme attendu dans l'environnement. Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la place de l'utilisateur actuel. L'entrée générée dans @file{/etc/passwd} dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire -personnel sera @file{/home/UTILISATEUR} ; et aucune donnée GECOS ne sera -copiée. @var{utilisateur} n'a pas besoin d'exister sur le système. +personnel sera @file{/home/@var{utilisateur}} ; et aucune donnée GECOS ne +sera copiée. En plus, l'UID et le GID dans le conteneur seront 1000. +@var{user} n'a pas besoin d'exister sur le système. En plus, tous les chemins partagés ou exposés (voir @code{--share} et @code{--expose} respectivement) dont la cible est dans le répertoire @@ -4740,9 +4854,10 @@ guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile @end example @end table -@command{guix environment} also supports all of the common build options -that @command{guix build} supports (@pxref{Options de construction communes}) as well as -package transformation options (@pxref{Options de transformation de paquets}). +En plus, @command{guix environment} prend en charge toutes les options de +construction communes prises en charge par @command{guix build} +(@pxref{Options de construction communes}) et toutes les options de transformation de +paquets (@pxref{Options de transformation de paquets}). @node Invoquer guix pack @section Invoquer @command{guix pack} @@ -4866,20 +4981,31 @@ symboliques spécifiés, ainsi que des points de montages vides pour les systèmes de fichiers virtuels comme procfs. @end table +@cindex binaires repositionnables @item --relocatable @itemx -R -Produit des @dfn{binaires repositionnables} — c.-à-d.@: des binaires que +Produire des @dfn{binaires repositionnables} — c.-à-d.@: des binaires que vous pouvez placer n'importe où dans l'arborescence du système de fichiers -et les lancer à partir de là. Par exemple, si vous créez un pack contenant -Bash avec : +et les lancer à partir de là. + +Lorsque vous passez cette option une fois, les binaires qui en résultent +demandent le support des @dfn{espaces de nom utilisateurs} dans le noyau +Linux ; lorsque vous la passez @emph{deux} fois@footnote{Il y a une astuce +pour s'en rappeler : on peut envisager @code{RR}, qui ajoute le support +PRoot, comme étant l'abréviation de « Réellement Repositionnable ». Pas +mal, hein ?}, les binaires repositionnables utilisent PRoot si les espaces +de noms ne sont pas utilisables, et ça fonctionne partout — voir plus bas +pour comprendre les implications. + +Par exemple, si vous créez un pack contenant Bash avec : @example -guix pack -R -S /mybin=bin bash +guix pack -RR -S /mybin=bin bash @end example @noindent -...@: you can copy that pack to a machine that lacks Guix, and from your -home directory as a normal user, run: +…@: vous pouvez copier ce pack sur une machine qui n'a pas Guix et depuis +votre répertoire personnel en tant qu'utilisateur non-privilégié, lancer : @example tar xf pack.tar.gz @@ -4893,13 +5019,26 @@ Dans ce shell, si vous tapez @code{ls /gnu/store}, vous remarquerez que C'est sans doute la manière la plus simple de déployer du logiciel construit avec Guix sur une machine sans Guix. -Il y a un inconvénient cependant : cette technique repose sur les -@dfn{espaces de noms} du noyau Linux qui permettent à des utilisateurs -non-privilégiés de monter des systèmes de fichiers ou de changer de racine. -Les anciennes versions de Linux ne le supportaient pas et certaines -distributions GNU/Linux les désactivent ; sur ces système, les programme du -pack @emph{ne fonctionneront pas} à moins qu'ils ne soient décompressés à la -racine du système de fichiers. +@quotation Remarque +Par défaut ,les binaires repositionnables s'appuient sur les @dfn{espaces de +noms utilisateurs} du noyau Linux, qui permet à des utilisateurs +non-privilégiés d'effectuer des montages et de changer de racine. Les +anciennes versions de Linux ne le supportait pas et certaines distributions +GNU/Linux le désactive. + +Pour produire des binaires repositionnables qui fonctionnent même sans +espace de nom utilisateur, passez @option{--relocatable} ou @option{-R} +@emph{deux fois}. Dans ce cas, les binaires testeront la prise en charge +des espaces de noms utilisateurs et utiliseront PRoot s'ils ne sont pas pris +en charge. + +Le programme @uref{https://proot-me.github.io/, PRoot} fournit la prise en +charge nécessaire pour la virtualisation du système de fichier. Il y arrive +en utilisant l'appel système @code{ptrace} sur le programme. Cette approche +a l'avantage de fonctionner sans demander de support spécial de la part du +noyau, mais occasionne un coût supplémentaire en temps pour chaque appel +système effectué. +@end quotation @item --expression=@var{expr} @itemx -e @var{expr} @@ -4949,6 +5088,24 @@ le lien symbolique qui sera créé et @var{cible} est la cible du lien. Par exemple, @code{-S /opt/gnu/bin=bin} crée un lien symbolique @file{/opt/gnu/bin} qui pointe vers le sous-répertoire @file{bin} du profil. +@item --save-provenance +Sauvegarder les informations de provenance des paquets passés sur la ligne +de commande. Les informations de provenance contiennent l'URL et le commit +des canaux utilisés (@pxref{Canaux}). + +Les informations de provenance sont sauvegardées dans le fichier +@file{/gnu/store/@dots{}-profile/manifest} du pack, avec les métadonnées de +paquets habituelles — le nom et la version de chaque paquet, leurs entrées +propagées, etc. Ce sont des informations utiles pour le destinataire du +pack, qui sait alors comment le pack a (normalement) été obtenu. + +Cette option n'est pas activée par défaut car, comme l'horodatage, les +informations de provenance ne contribuent en rien au processus de +construction. En d'autres termes, il y a une infinité d'URL et d'ID de +commit qui permettent d'obtenir le même pack. Enregistrer de telles +métadonnées « silencieuses » dans la sortie casse donc éventuellement la +propriété de reproductibilité au bit près. + @item --localstatedir @itemx --profile-name=@var{nom} Inclus le « répertoire d'état local », @file{/var/guix}, dans le lot qui en @@ -5144,7 +5301,7 @@ Il y a quelques points à remarquer dans la définition de paquet précédente : @itemize @item -Le champ @code{source} du paquet est un objet @code{<origin>} (@pxref{Référence d'origine}, pour la référence complète). Ici, on utilise la méthode +Le champ @code{source} du paquet est un objet @code{<origin>} (@pxref{Référence des origines}, pour la référence complète). Ici, on utilise la méthode @code{url-fetch} de @code{(guix download)}, ce qui signifie que la source est un fichier à télécharger par FTP ou HTTP. @@ -5226,7 +5383,7 @@ simplement indisponible pour le processus de construction, ce qui peut mener à un échec de la construction. @end itemize -@xref{Référence de paquet}, pour une description complète des champs +@xref{Référence des paquets}, pour une description complète des champs possibles. Lorsqu'une définition de paquet est en place, le paquet peut enfin être @@ -5319,6 +5476,30 @@ Ici nous définissons d'abord une procédure de réécriture qui remplace @option{--with-input} fait (@pxref{Options de transformation de paquets, @option{--with-input}}). +La variante suivante de @code{package-input-rewriting} peut repérer les +paquets à remplacer par nom à la place de leur identité. + +@deffn {Procédure Scheme} package-input-rewriting/spec @var{remplacements} +Renvoie une procédure qui, étant donné un paquet, applique les +@var{remplacements} à tous le graphe du paquet (en dehors des entrées +implicites). @var{remplacements} est une liste de paires de spécifications +et de procédures ; chaque spécification est une spécification de paquet +comme @code{"gcc"} ou @code{"guile@@2"}, et chaque procédure prend un paquet +correspondant et renvoie un remplaçant pour ce paquet. +@end deffn + +L'exemple ci-dessus pourrait être réécrit de cette manière : + +@example +(define libressl-instead-of-openssl + ;; Remplace tous les paquets nommés « openssl » par LibreSSL. + (package-input-rewriting/spec `(("openssl" . ,(const libressl))))) +@end example + +Le différence clef est que, cette fois-ci, les paquets correspondent à la +spécification et non à l'identité. En d'autres termes, tout paquet dans le +graphe qui est appelé @code{openssl} sera remplacé. + Une procédure plus générique pour réécrire un graphe de dépendance d'un paquet est @code{package-mapping} : elle supporte n'importe quel changement dans les nœuds du graphe. @@ -5330,19 +5511,19 @@ arrête la récursion là où @var{cut?} renvoie vrai pour un paquet donné. @end deffn @menu -* Référence de paquet:: Le type de donnée des paquets. -* Référence d'origine:: Le type de données d'origine. +* Référence des paquets:: Le type de donnée des paquets. +* Référence des origines:: Le type de données d'origine. @end menu -@node Référence de paquet +@node Référence des paquets @subsection Référence de @code{package} Cette section résume toutes les options disponibles dans les déclarations @code{package} (@pxref{Définition des paquets}). @deftp {Type de données} package -C'est le type de donnée représentant une recette de paquets +C'est le type de donnée représentant une recette de paquets. @table @asis @item @code{name} @@ -5354,7 +5535,7 @@ La version du paquet, comme une chaîne de caractères. @item @code{source} Un objet qui indique comment le code source du paquet devrait être récupéré. La plupart du temps, c'est un objet @code{origin} qui indique un -fichier récupéré depuis internet (@pxref{Référence d'origine}). Il peut aussi +fichier récupéré depuis internet (@pxref{Référence des origines}). Il peut aussi s'agir de tout autre objet ``simili-fichier'' comme un @code{local-file} qui indique un fichier du système de fichier local (@pxref{G-Expressions, @code{local-file}}). @@ -5417,10 +5598,6 @@ peuvent trouver le code des bibliothèques dont elles dépendent à l'exécution, les dépendances à l'exécution doivent être listées dans @code{propagated-inputs} plutôt que @code{inputs}. -@item @code{self-native-input?} (par défaut : @code{#f}) -C'est un champ booléen qui indique si le paquet devrait s'utiliser lui-même -comme entrée native lors de la compilation croisée. - @item @code{outputs} (par défaut : @code{'("out")}) La liste des noms de sorties du paquet. @xref{Des paquets avec plusieurs résultats}, pour des exemples typiques d'utilisation de sorties supplémentaires. @@ -5464,8 +5641,29 @@ corrigé. @end table @end deftp +@deffn {Scheme Syntax} this-package +When used in the @emph{lexical scope} of a package field definition, this +identifier resolves to the package being defined. + +The example below shows how to add a package as a native input of itself +when cross-compiling: -@node Référence d'origine +@example +(package + (name "guile") + ;; ... + + ;; When cross-compiled, Guile, for example, depends on + ;; a native version of itself. Add it here. + (native-inputs (if (%current-target-system) + `(("self" ,this-package)) + '()))) +@end example + +It is an error to refer to @code{this-package} outside a package definition. +@end deffn + +@node Référence des origines @subsection Référence de @code{origin} Cette section résume toutes les options disponibles dans le déclarations @@ -5877,24 +6075,31 @@ le code sera compilé avec @code{-O2 -g} comme pour les paquets autoconf par défaut. @end defvr -@defvr {Scheme Variable} dune-build-system -This variable is exported by @code{(guix build-system dune)}. It supports -builds of packages using @uref{https://dune.build/, Dune}, a build tool for -the OCaml programming language. It is implemented as an extension of the -@code{ocaml-build-system} which is described below. As such, the -@code{#:ocaml} and @code{#:findlib} parameters can be passed to this build -system. +@defvr {Variable Scheme} dune-build-system +Cette variable est exportée par @code{(guix build-system dune)}. Elle prend +en charge la construction des paquets qui utilisent +@uref{https://dune.build/, Dune}, un outil de construction pour le langage +de programmation OCaml. Elle est implémentée comme une extension de +@code{ocaml-build-system} décrit plus bas. En tant que tel, les paramètres +@code{#:ocaml} et @code{#:findlib} peuvent être passés à ce système de +construction. + +Elle ajoute automatiquement le paquet @code{dune} à l'ensemble des entrées. +Le paquet utilisé peut être spécifié par le paramètre @code{#:dune}. -It automatically adds the @code{dune} package to the set of inputs. Which -package is used can be specified with the @code{#:dune} parameter. +Il n'y a pas de phase @code{configure} parce que les paquets dune n'ont +habituellement pas besoin d'être configurés. Le paramètre +@code{#:build-flags} est interprété comme une liste de drapeaux pour la +commande @code{dune} pendant la construction. -There is no @code{configure} phase because dune packages typically don't -need to be configured. The @code{#:build-flags} parameter is taken as a -list of flags passed to the @code{dune} command during the build. +Le paramètre @code{#:jbuild?} peut être passé pour utiliser la commande +@code{jbuild} à la place de la commande @code{dune} plus récente pour la +construction d'un paquet. Sa valeur par défaut est @code{#f}. -The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} -command instead of the more recent @code{dune} command while building a -package. Its default value is @code{#f}. +Le paramètre @code{#:package} peut être passé pour spécifié un nom de +paquet, ce qui est utile lorsqu'un paquet contient plusieurs paquets et que +vous voulez n'en construire qu'un. C'est équivalent à passer l'argument +@code{-p} à @code{dune}. @end defvr @defvr {Variable Scheme} go-build-system @@ -5915,10 +6120,11 @@ le code source du paquet dans une structure de répertoires différente que celle indiquée par le chemin d'import et @code{#:unpack-path} devrait être utilisé dans ces cas-là. -Les paquets qui fournissent des bibliothèques Go devraient être installées -avec leur code source. La clef @code{#:install-soruce?}, qui vaut @code{#t} -par défaut, contrôle l'installation du code source. Elle peut être mise à -@code{#f} pour les paquets qui ne fournissent que des fichiers exécutables. +Les paquets qui fournissent des bibliothèques Go devraient installer leur +code source dans la sortie du paquet. La clef @code{#:install-source?}, qui +vaut @code{#t} par défaut, contrôle l'installation du code source. Elle +peut être mise à @code{#f} pour les paquets qui ne fournissent que des +fichiers exécutables. @end defvr @defvr {Variable Scheme} glib-or-gtk-build-system @@ -6091,6 +6297,24 @@ sont lancés après l'installation avec la fonction R @code{tools::testInstalledPackage}. @end defvr +@defvr {Variable Scheme} rakudo-build-system +Cette variable est exportée par @code{(guix build-system rakudo)}. Elle +implémente la procédure de construction utilisée par +@uref{https://rakudo.org/, Rakudo} pour les paquets +@uref{https://perl6.org/, Perl6}. Elle installe le paquet dans +@code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} et installe les binaires, +les fichiers de bibliothèques et les ressources, et enveloppe les fichiers +dans le répertoire @code{bin/}. Les tests peuvent être passés en indiquant +@code{#f} au paramètres @code{tests?}. + +Le paquet rakudo utilisé peut être spécifié avec @code{rakudo}. Le paquet +perl6-tap-harness utilisé pour les tests peut être spécifié avec +@code{#:prove6} ou supprimé en passant @code{#f} au paramètre +@code{with-prove6?}. Le paquet perl6-zef utilisé pour les tests et +l'installation peut être spécifié avec @code{#:ef} ou supprimé en passant +@code{#f} au paramètre @code{with-zef?}. +@end defvr + @defvr {Variable Scheme} texlive-build-system Cette variable est exportée par @code{(guix build-system texlive)}. Elle est utilisée pour construire des paquets TeX en mode batch avec le moteur @@ -6198,11 +6422,11 @@ paquet est installé dans son propre répertoire dans @end defvr @defvr {Variable Scheme} font-build-system -This variable is exported by @code{(guix build-system font)}. It implements -an installation procedure for font packages where upstream provides -pre-compiled TrueType, OpenType, etc.@: font files that merely need to be -copied into place. It copies font files to standard locations in the output -directory. +Cette variable est exportée par @code{(guix build-system font)}. Elle +implémente une procédure d'installation pour les paquets de polices où des +fichiers de polices TrueType, OpenType, etc.@: sont fournis en amont et +n'ont qu'à être copiés à leur emplacement final. Elle copie les fichiers de +polices à l'emplacement standard dans le répertoire de sortie. @end defvr @defvr {Variable Scheme} meson-build-system @@ -6263,6 +6487,33 @@ n'est pas activée par défaut. Elle peut l'être avec @code{#:glib-or-gtk?}. @end table @end defvr +@defvr {Scheme Variable} linux-module-build-system +@var{linux-module-build-system} allows building Linux kernel modules. + +@cindex phases de construction +This build system is an extension of @var{gnu-build-system}, but with the +following phases changed: + +@table @code + +@item configure +This phase configures the environment so that the Linux kernel's Makefile +can be used to build the external kernel module. + +@item build +This phase uses the Linux kernel's Makefile in order to build the external +kernel module. + +@item install +This phase uses the Linux kernel's Makefile in order to install the external +kernel module. +@end table + +It is possible and useful to specify the Linux kernel to use for building +the module (in the "arguments" form of a package using the +linux-module-build-system, use the key #:linux to specify it). +@end defvr + Enfin, pour les paquets qui n'ont pas besoin de choses sophistiquées, un système de construction « trivial » est disponible. Il est trivial dans le sens où il ne fournit en gros aucun support : il n'apporte pas de dépendance @@ -6355,7 +6606,7 @@ dire d'écouter des connexions TCP (@pxref{Invoquer guix-daemon, @cindex accès SSH au démon de construction Ces URI vous permettent de vous connecter au démon à distance à travers SSH@footnote{Cette fonctionnalité requiert Guile-SSH -(@pxref{Prérequis}).}. +(@pxref{Prérequis}).}. Une URL typique pourrait ressembler à ceci : @example ssh://charlie@@guix.example.org:22 @@ -6408,8 +6659,8 @@ Renvoie @code{#t} lorsque @var{path} désigne un élément du dépôt valide et invalide, par exemple parce que c'est le résultat d'une construction annulée ou échouée). -A @code{&store-protocol-error} condition is raised if @var{path} is not -prefixed by the store directory (@file{/gnu/store}). +Une condition @code{&store-protocol-error} est levée si @var{path} n'est pas +préfixée par le répertoire du dépôt (@file{/gnu/store}). @end deffn @deffn {Procédure Scheme} add-text-to-store @var{server} @var{name} @var{text} [@var{references}] @@ -6445,8 +6696,11 @@ Les sorties de la dérivation — les dérivations produisent au moins un fichier ou répertoire dans le dépôt, mais peuvent en produire plus. @item -Les entrées de la dérivation, qui peuvent être d'autres dérivations ou des -fichiers dans le dépôt (correctifs, scripts de construction, etc). +@cindex dépendances à la construction +@cindex construction, dépendances +Les entrées de la dérivation — c.-à-d.@: ses dépendances à la construction — +qui peuvent être d'autres dérivations ou des fichiers dans le dépôt +(correctifs, scripts de construction, etc). @item Le type de système ciblé par la dérivation — p.ex.@: @code{x86_64-linux}. @@ -6478,6 +6732,18 @@ dérivation à sortie fixe sont indépendantes de ses entrées — p.ex.@: un co source téléchargé produit le même résultat quelque soit la méthode de téléchargement utilisée. +@cindex references +@cindex dépendances à l'exécution +@cindex exécution, dépendances +Les sorties des dérivations — c.-à-d.@: les résultats de la construction — +ont un ensemble de @dfn{références}, comme le rapporte le RPC +@code{references} ou la commande @command{guix gc --references} +(@pxref{Invoquer guix gc}). Les références sont l'ensemble des dépendances +à l'exécution des résultats de la construction. Les références sont un +sous-ensemble des entrées de la dérivation ; ce sous-ensemble est +automatiquement calculé par le démon de construction en scannant tous les +fichiers dans les sorties. + Le module @code{(guix derivations)} fournit une représentation des dérivations comme des objets Scheme, avec des procédures pour créer et manipuler des dérivations. La primitive de plus bas-niveau pour créer une @@ -6692,13 +6958,12 @@ puisqu'il aura lieu implicitement, comme nous le verrons plus tard @c See @c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/> @c for the funny quote. -L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet. En -anglais on pourrait dire « you exit a monad like you exit a building on -fire: by running »@footnote{NdT : « on sort d'une monade comme d'un immeuble -en flamme, en courant ». Le jeu de mot est perdu à la traduction : courir -et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de -la monade et obtenir l'effet escompté, on doit utiliser -@code{run-with-store}. +L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet. Comme +on pourrait le dire, « on sort d'une monade comme de la monarchie : en +l'exécutant »@footnote{NdT : il y a là un jeu de mot en anglais qui se base +sur un double sens de « run », qui peut se traduire par « exécuter » dans ce +contexte.}. Donc, pour sortir de la monade et obtenir l'effet escompté, on +doit utiliser @code{run-with-store}. @example (run-with-store (open-connection) (sh-symlink)) @@ -7594,7 +7859,7 @@ Accepte les connexions sur le socket Unix-domain @file{/tmp/socket}. @node Utilitaires @chapter Utilitaires -cette section décrit les utilitaires en ligne de commande de Guix. certains +Cette section décrit les utilitaires en ligne de commande de Guix. certains sont surtout faits pour les développeurs qui écrivent de nouvelles définitions de paquets tandis que d'autres sont plus utiles pour une utilisation générale. Ils complètent l'interface de programmation Scheme de @@ -7783,13 +8048,13 @@ Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoquer guix @c Note: This option is actually not part of %standard-build-options but @c most programs honor it. -@cindex verbosity, of the command-line tools -@cindex build logs, verbosity -@item -v @var{level} -@itemx --verbosity=@var{level} -Use the given verbosity @var{level}, an integer. Choosing 0 means that no -output is produced, 1 is for quiet output, and 2 shows all the build log -output on standard error. +@cindex verbosité, des outils en ligne de commande +@cindex journaux de construction, verbosité +@item -v [@var{niveau}] +@itemx --verbosity=@var{niveau} +Utiliser le @var{niveau} de verbosité, en tant qu'entier. 0 signifie +qu'aucune sortie n'est produite, 1 signifie une sortie silencieuse et 2 +montre tous les journaux de construction sur la sortie d'erreur standard. @item --cores=@var{n} @itemx -c @var{n} @@ -7801,11 +8066,12 @@ valeur spéciale @code{0} signifie autant de cœurs que possible. Permet au plus @var{n} travaux de construction en parallèle. @xref{Invoquer guix-daemon, @code{--max-jobs}}, pour plus de détails sur cette option et l'option équivalente pour @command{guix-daemon}. -@item --debug=@var{level} -Produce debugging output coming from the build daemon. @var{level} must be -an integer between 0 and 5; higher means more verbose output. Setting a -level of 4 or more may be helpful when debugging setup issues with the build -daemon. +@item --debug=@var{niveau} +Produire une sortie de débogage qui provient du démon de construction. +@var{niveau} doit être un entier entre 0 et 5 ; plus grand est ce nombre, +plus verbeuse sera la sortie. Indiquer un niveau de 4 ou plus peut être +utile pour déboguer des problèmes d'installation avec le démon de +construction. @end table @@ -7931,39 +8197,55 @@ doivent être compatibles. Si @var{remplaçant} est incompatible avec @var{paquet}, alors le paquet qui en résulte peut devenir inutilisable. À utilisez avec précaution ! -@item --with-branch=@var{package}=@var{branch} -@cindex Git, using the latest commit -@cindex latest commit, building -Build @var{package} from the latest commit of @var{branch}. The -@code{source} field of @var{package} must be an origin with the -@code{git-fetch} method (@pxref{Référence d'origine}) or a @code{git-checkout} -object; the repository URL is taken from that @code{source}. Git -sub-modules of the repository are fetched, recursively. +@item --with-git-url=@var{paquet}=@var{url} +@cindex Git, utiliser le dernier commit +@cindex dernier commit, construction +Construire @var{paquet} depuis le dernier commit de la branche @code{master} +du dépôt sur @var{url}. Les sous-modules Git du dépôt sont récupérés, +récursivement. -For instance, the following command builds @code{guile-sqlite3} from the -latest commit of its @code{master} branch, and then builds @code{guix} -(which depends on it) and @code{cuirass} (which depends on @code{guix}) -against this specific @code{guile-sqlite3} build: +Par exemple, la commande suivante construit la bibliothèque Python NumPy +avec le dernier commit de la branche master de Python lui-même : @example -guix build --with-branch=guile-sqlite3=master cuirass +guix build python-numpy \ + --with-git-url=python=https://github.com/python/cpython @end example +Cette option peut aussi être combinée avec @code{--with-branch} ou +@code{--with-commit} (voir plus bas). + @cindex intégration continue -Obviously, since it uses the latest commit of the given branch, the result -of such a command varies over time. Nevertheless it is a convenient way to -rebuild entire software stacks against the latest commit of one or more -packages. This is particularly useful in the context of continuous -integration (CI). - -Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed -up consecutive accesses to the same repository. You may want to clean it up -once in a while to save disk space. - -@item --with-commit=@var{package}=@var{commit} -This is similar to @code{--with-branch}, except that it builds from -@var{commit} rather than the tip of a branch. @var{commit} must be a valid -Git commit SHA1 identifier. +Évidemment, comme cela utilise le dernier commit d'une branche donnée, le +résultat d'une telle commande varie avec le temps. Néanmoins c'est une +manière pratique pour reconstruire des piles logicielles entières avec le +dernier commit d'un ou plusieurs paquets. C'est particulièrement pratique +dans le contexte d'une intégration continue. + +Les clones sont gardés dans un cache dans @file{~/.cache/guix/checkouts} +pour accélérer les accès consécutifs au même dépôt. Vous pourriez vouloir +le nettoyer de temps en temps pour récupérer de l'espace disque. + +@item --with-branch=@var{paquet}=@var{branche} +Construire @var{paquet} à partir du dernier commit de la @var{branche}. Si +le champ @code{source} de @var{paquet} est une origine avec la méthode +@code{git-fetch} (@pxref{Référence des origines}) ou un objet @code{git-checkout}, +l'URL du dépôt est récupérée à partir de cette @code{source}. Sinon, vous +devez utiliser @code{--with-git-url} pour spécifier l'URL du dépôt Git. + +Par exemple, la commande suivante construit @code{guile-sqlite3} à partir du +dernier commit de sa branche @code{master}, puis construit @code{guix} (qui +en dépend) et @code{cuirass} (qui dépend de @code{guix}) avec cette +construction spécifique de @code{guile-sqlite3} : + +@example +guix build --with-branch=guile-sqlite3=master cuirass +@end example + +@item --with-commit=@var{paquet}=@var{commit} +Cela est similaire à @code{--with-branch}, sauf qu'elle construite à partir +de @var{commit} au lieu du sommet d'une branche. @var{commit} doit être un +identifiant SHA1 de commit Git valide. @end table @node Options de construction supplémentaires @@ -7976,10 +8258,10 @@ Les options de la ligne de commande ci-dessous sont spécifiques à @item --quiet @itemx -q -Build quietly, without displaying the build log; this is equivalent to -@code{--verbosity=0}. Upon completion, the build log is kept in @file{/var} -(or similar) and can always be retrieved using the @option{--log-file} -option. +Construire en silence, sans afficher les journaux de construction ; c'est +équivalent à @code{--verbosity=0}. À la fin, le journal de construction est +gardé dans @file{/var} (ou similaire) et on peut toujours l'y trouver avec +l'option @option{--log-file}. @item --file=@var{fichier} @itemx -f @var{fichier} @@ -8048,9 +8330,10 @@ The following derivations will be built: @end example @item transitive -Build the source derivations of all packages, as well of all transitive -inputs to the packages. This can be used e.g.@: to prefetch package source -for later offline building. +Construire les dérivations des sources de tous les paquets, ainsi que toutes +celles des entrées transitives des paquets. On peut par exemple utiliser +cette option pour précharger les sources des paquets pour les construire +plus tard hors ligne. @example $ guix build --sources=transitive tzdata @@ -8068,8 +8351,10 @@ The following derivations will be built: @item --system=@var{système} @itemx -s @var{système} -Tenter de construire pour le @var{système} — p.@: ex.@: @code{i686-linux} — -plutôt que pour le type de système de l'hôte de construction. +Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the +system type of the build host. The @command{guix build} command allows you +to repeat this option several times, in which case it builds for all the +specified systems; other commands ignore extraneous @option{-s} options. @quotation Remarque Le drapeau @code{--system} est utilisé pour une compilation @emph{native} et @@ -8396,7 +8681,7 @@ système de contrôle de version (@file{.bzr}, @file{.git}, @file{.hg}, etc). @vindex git-fetch Par exemple, voici comment calculer le hash d'un dépôt Git, ce qui est utile -avec la méthode @code{git-fetch} (@pxref{Référence d'origine}) : +avec la méthode @code{git-fetch} (@pxref{Référence des origines}) : @example $ git clone http://example.org/foo.git @@ -8457,12 +8742,13 @@ OpenPGP manquantes lors de la vérification de la signature d'un paquet. @item pypi @cindex pypi -Import metadata from the @uref{https://pypi.python.org/, Python Package -Index}. Information is taken from the JSON-formatted description available -at @code{pypi.python.org} and usually includes all the relevant information, -including package dependencies. For maximum efficiency, it is recommended -to install the @command{unzip} utility, so that the importer can unzip -Python wheels and gather data from them. +Importe des métadonnées depuis @uref{https://pypi.python.org/, l'index des +paquets Python}. Les informations sont récupérées à partir de la +description en JSON disponible sur @code{pypi.python.org} et inclus +généralement toutes les informations utiles, dont les dépendances des +paquets. Pour une efficacité maximale, il est recommandé d'installer +l'utilitaire @command{unzip}, pour que l'importateur puisse dézipper les +wheels Python et récupérer les informations contenues à l'intérieur. La commande ci-dessous importe les métadonnées du paquet Python @code{itsdangerous} : @@ -8480,13 +8766,14 @@ expressions de paquets de tous ceux qui ne sont pas déjà dans Guix. @item gem @cindex gem -Import metadata from @uref{https://rubygems.org/, RubyGems}. Information is -taken from the JSON-formatted description available at @code{rubygems.org} -and includes most relevant information, including runtime dependencies. -There are some caveats, however. The metadata doesn't distinguish between -synopses and descriptions, so the same string is used for both fields. -Additionally, the details of non-Ruby dependencies required to build native -extensions is unavailable and left as an exercise to the packager. +Importe des métadonnées de @uref{https://rubygems.org/, RubyGems}. Les +informations sont récupérées au format JSON disponible sur +@code{rubygems.org} et inclut les informations les plus utiles, comme les +dépendances à l'exécution. Il y a des cependant quelques restrictions. Les +métadonnées ne distinguent pas synopsis et description, donc la même chaîne +est utilisée pour les deux champs. En plus, les détails des dépendances non +Ruby requises pour construire des extensions natives sont indisponibles et +laissé en exercice à l'empaqueteur. La commande ci-dessous importe les métadonnées pour le paquet Ruby @code{rails} : @@ -8504,13 +8791,14 @@ expressions de paquets de tous ceux qui ne sont pas déjà dans Guix. @item cpan @cindex CPAN -Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. -Information is taken from the JSON-formatted metadata provided through -@uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most -relevant information, such as module dependencies. License information -should be checked closely. If Perl is available in the store, then the -@code{corelist} utility will be used to filter core modules out of the list -of dependencies. +Importe des métadonnées de @uref{https://www.metacpan.org/, MetaCPAN}. Les +informations sont récupérées au format JSON disponible à travers +@uref{https://fastapi.metacpan.org/, l'API de MetaCPAN} et inclus les +informations les plus utiles, comme les dépendances des modules. +L'information sur les licences doit être vérifiée avec attention. Si Perl +est disponible dans le dépôt, alors l'utilitaire @code{corelist} sera +utiliser pour exclure les modules du cœur de la distribution Perl de la +liste des dépendances. La commande ci-dessous importe les métadonnées du module Perl @code{Acme::Boolean} : @@ -8587,8 +8875,8 @@ guix import texlive --archive=generic ifxetex @item json @cindex JSON, import -Import package metadata from a local JSON file. Consider the following -example package definition in JSON format: +Importe des métadonnées d'un fichier JSON local. Considérez l'exemple +suivant d'une définition de paquet au format JSON : @example @{ @@ -8792,7 +9080,7 @@ Importe les métadonnées du répertoire des paquets Rust @cindex OPAM @cindex OCaml Importe les métadonnées du répertoire de paquets -@uref{https://opam.ocaml.org/, OPAM} utilisé par la communauté OCaml +@uref{https://opam.ocaml.org/, OPAM} utilisé par la communauté OCaml. @end table La structure du code de @command{guix import} est modulaire. Il serait @@ -8836,8 +9124,7 @@ une nouvelle méthode ! @table @code @item --recursive -Consider the packages specified, and all the packages upon which they -depend. +Considère les paquets spécifiés et tous les paquets dont ils dépendent. @example $ guix refresh --recursive coreutils @@ -8977,6 +9264,9 @@ le gestionnaire de mise à jour pour les paquets @item crate le gestionnaire de mise à jour pour les paquets @uref{https://crates.io, Crates} ; +@item launchpad +le gestionnaire de mise à jour pour les paquets @uref{https://launchpad.net, +Launchpad} @end table Par exemple, la commande suivante ne vérifie que les mises à jour des @@ -9045,7 +9335,7 @@ construits pour vérifier la compatibilité d'une mise à jour de @code{flex}. @table @code @item --list-transitive -List all the packages which one or more packages depend upon. +Lister tous les paquets dont un paquet ou plus dépendent. @example $ guix refresh --list-transitive flex @@ -9055,8 +9345,8 @@ bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.3 @end table -The command above lists a set of packages which, when changed, would cause -@code{flex} to be rebuilt. +La commande ci-dessus liste un ensemble de paquets qui, lorsqu'ils sont +modifiés, causent la reconstruction de @code{flex}. Les options suivante peuvent être utilisées pour personnaliser les opérations avec GnuPG : @@ -9125,15 +9415,17 @@ clef publique. @end table -The @code{github} updater uses the @uref{https://developer.github.com/v3/, -GitHub API} to query for new releases. When used repeatedly e.g.@: when -refreshing all packages, GitHub will eventually refuse to answer any further -API requests. By default 60 API requests per hour are allowed, and a full -refresh on all GitHub packages in Guix requires more than this. -Authentication with GitHub through the use of an API token alleviates these -limits. To use an API token, set the environment variable -@code{GUIX_GITHUB_TOKEN} to a token procured from -@uref{https://github.com/settings/tokens} or otherwise. +Le gestionnaire de mises à jour @code{github} utilise +@uref{https://developer.github.com/v3/, l'API de GitHub} pour faire des +requêtes sur les nouvelles versions. Lorsqu'elle est utilisé de manière +répétée, p.@: ex.@: lorsque vous vérifiez tous les paquets, GitHub finira +par refuser de répondre à d'autres requêtes de l'API. Par défaut 60 +requêtes à l'heure sont autorisées, et une vérification complète de tous les +paquets GitHub dans Guix requiert bien plus que cela. L'authentification +avec GitHub à travers l'utilisation d'un jeton d'API lève ces limites. Pour +utiliser un jeton de l'API, initialisez la variable d'environnement +@code{GUIX_GITHUB_TOKEN} avec un jeton que vous vous serez procuré sur +@uref{https://github.com/settings/tokens} ou autrement. @node Invoquer guix lint @@ -9163,17 +9455,17 @@ natives. @itemx mirror-url @itemx github-url @itemx source-file-name -Probe @code{home-page} and @code{source} URLs and report those that are -invalid. Suggest a @code{mirror://} URL when applicable. If the -@code{source} URL redirects to a GitHub URL, recommend usage of the GitHub -URL. Check that the source file name is meaningful, e.g.@: is not just a -version number or ``git-checkout'', without a declared @code{file-name} -(@pxref{Référence d'origine}). +Sonde les URL @code{home-page} et @code{source} et rapporte celles qui sont +invalides. Suggère une URL en @code{mirror://} lorsque c'est possible. Si +l'URL de @code{source} redirige vers une URL GitHub, recommande d'utiliser +l'URL GitHub. Vérifie que le nom du fichier source a un sens, p.@: ex.@: +qu'il ne s'agisse pas juste d'un numéro de version ou « git-checkout », sans +avoir déclaré un @code{file-name} (@pxref{Référence des origines}). @item source-unstable-tarball -Parse the @code{source} URL to determine if a tarball from GitHub is -autogenerated or if it is a release tarball. Unfortunately GitHub's -autogenerated tarballs are sometimes regenerated. +Analyse l'URL @code{source} pour déterminer si une archive de GitHub est +autogénérée ou s'il s'agit d'une archive de publication. Malheureusement +les archives autogénérées de GitHub sont parfois régénérées. @item cve @cindex vulnérabilités @@ -9362,7 +9654,7 @@ la taille de chaque élément (par défaut) ; la taille totale de la clôture de l'élément. @end table -@item --map-file=@var{fichier} +@item --map-file=@var{fichier} Écrit un schéma de l'utilisation du disque au format PNG dans @var{fichier}. Pour l'exemple au-dessus, le schéma ressemble à ceci : @@ -9439,7 +9731,9 @@ Cela montre le DAG @emph{inversé} des paquets. Par exemple : guix graph --type=reverse-package ocaml @end example -...@: yields the graph of packages that depend on OCaml. +…@: crée le graphe des paquets qui dépendent @emph{explicitement} d'OCaml +(si vous vous intéressez aussi au cas où OCaml est une dépendance implicite, +voir @code{reverse-bag} plus bas). Remarquez que pour les paquets du cœur de la distribution, cela crée des graphes énormes. Si vous voulez seulement voir le nombre de paquets qui @@ -9456,7 +9750,7 @@ Par exemple, la commande suivante : guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf @end example -...@: yields this bigger graph: +…@: montre ce graphe plus gros : @image{images/coreutils-bag-graph,,5in,Graphe des dépendances détaillé de GNU Coreutils} @@ -9475,6 +9769,22 @@ bootstrap. @item bag-with-origins Comme @code{bag}, mais montre aussi les origines et leurs dépendances. +@item reverse-bag +Cela montre le DAG @emph{inverse} des paquets. Contrairement à +@code{reverse-package}, il montre aussi les dépendance implicites. Par +exemple : + +@example +guix graph -t reverse-bag dune +@end example + +@noindent +…@: crée le graphe des tous les paquets qui dépendent de Dune, directement +ou indirectement. Comme Dune est une dépendance @emph{implicite} de +nombreux paquets @i{via} @code{dune-build-system}, cela montre un plus grand +nombre de paquets, alors que @code{reverse-package} en montrerait très peu, +voir aucun. + @item dérivation C'est la représentation lu plus détaillée : elle montre le DAG des dérivations (@pxref{Dérivations}) et des éléments du dépôt. Comparé à la @@ -9583,11 +9893,12 @@ Le but de @command{guix publish} est de vous permettre de partager facilement votre dépôt avec d'autres personnes qui peuvent ensuite l'utiliser comme serveur de substituts (@pxref{Substituts}). -When @command{guix publish} runs, it spawns an HTTP server which allows -anyone with network access to obtain substitutes from it. This means that -any machine running Guix can also act as if it were a build farm, since the -HTTP interface is compatible with Hydra, the software behind the -@code{@value{SUBSTITUTE-SERVER}} build farm. +Lorsque @command{guix publish} est lancé, il crée un serveur HTTP qui permet +à n'importe qui avec un accès réseau d'y récupérer des substituts. Cela +signifie que toutes les machines qui font tourner Guix peuvent aussi agir +comme une ferme de construction, puisque l'interface HTTP est compatible +avec Hydra, le logiciel derrière la ferme de construction +@code{@value{SUBSTITUTE-SERVER}}. Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux destinataires de vérifier leur authenticité et leur intégrité @@ -9630,7 +9941,7 @@ fournit un manière pratique de vérifier ce qu'un serveur fournit En bonus, @command{guix publish} sert aussi un miroir adressé par le contenu des fichiers source référencées dans les enregistrements @code{origin} -(@pxref{Référence d'origine}). Par exemple, en supposant que @command{guix +(@pxref{Référence des origines}). Par exemple, en supposant que @command{guix publish} tourne sur @code{example.org}, l'URL suivante renverra le fichier brut @file{hello-2.10.tar.gz} avec le hash SHA256 donné (représenté sous le format @code{nix-base32}, @pxref{Invoquer guix hash}) : @@ -9766,12 +10077,12 @@ Reference Manual}) sur @var{pport} (37146 par défaut). C'est surtout utile pour déboguer un serveur @command{guix publish} qui tourne. @end table -Enabling @command{guix publish} on Guix System is a one-liner: just -instantiate a @code{guix-publish-service-type} service in the -@code{services} field of the @code{operating-system} declaration +Activer @command{guix publish} sur un système Guix est vraiment une seule +ligne : instanciez simplement un service @code{guix-publish-service-type} +dans le champs @code{services} de votre déclaration @code{operating-system} (@pxref{guix-publish-service-type, @code{guix-publish-service-type}}). -Si vous avez installé Guix sur une « distro extérieure », suivez ces +Si vous avez installé Guix sur une « distro externe », suivez ces instructions : @itemize @@ -9831,20 +10142,20 @@ La sortie de la commande ressemble à : @smallexample $ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org" -updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0% -updating list of substitutes from 'https://guix.example.org'... 100.0% -/gnu/store/@dots{}-openssl-1.0.2d contents differ: - local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q - https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim -/gnu/store/@dots{}-git-2.5.0 contents differ: - local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f - https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 -/gnu/store/@dots{}-pius-2.1.1 contents differ: - local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax - https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs +mise à jour de la liste des substituts depuis 'https://@value{SUBSTITUTE-SERVER}'... 100.0% +mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0% +le contenu de /gnu/store/@dots{}-openssl-1.0.2d diffère : + empreinte locale : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q + https://guix.example.org/nar/@dots{}-openssl-1.0.2d : 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim +le contenu de /gnu/store/@dots{}-git-2.5.0 diffère : + empreinte locale : 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 : 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f + https://guix.example.org/nar/@dots{}-git-2.5.0 : 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 +le contenu de /gnu/store/@dots{}-pius-2.1.1 diffère : + empreinte locale : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1 : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax + https://guix.example.org/nar/@dots{}-pius-2.1.1 : 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs @dots{} @@ -9863,15 +10174,16 @@ les éléments du dépôt pour lesquels les serveurs ont obtenu un résultat différent de la construction locale. @cindex non-déterminisme, dans les constructions des paquets -As an example, @code{guix.example.org} always gets a different answer. -Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, -except in the case of Git. This might indicate that the build process of -Git is non-deterministic, meaning that its output varies as a function of -various things that Guix does not fully control, in spite of building -packages in isolated environments (@pxref{Fonctionnalités}). Most common sources -of non-determinism include the addition of timestamps in build results, the -inclusion of random numbers, and directory listings sorted by inode number. -See @uref{https://reproducible-builds.org/docs/}, for more information. +Dans l'exemple, @code{guix.example.org} obtient toujours une réponse +différente. Inversement, @code{@value{SUBSTITUTE-SERVER}} est d'accord avec +les constructions locale, sauf dans le cas de Git. Cela peut indiquer que +le processus de construction de Git est non-déterministe, ce qui signifie +que sa sortie diffère en fonction de divers choses que Guix ne contrôle pas +parfaitement, malgré l'isolation des constructions (@pxref{Fonctionnalités}). Les +sources les plus communes de non-déterminisme comprennent l'ajout +d'horodatage dans les résultats des constructions, l'inclusion de nombres +aléatoires et des listes de fichiers ordonnés par numéro d'inœud. Voir +@uref{https://reproducible-builds.org/docs/}, pour plus d'informations. Pour trouver ce qui ne va pas avec le binaire de Git, on peut faire quelque chose comme cela (@pxref{Invoquer guix archive}) : @@ -9882,13 +10194,14 @@ $ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \ $ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git @end example -This command shows the difference between the files resulting from the local -build, and the files resulting from the build on +Cette commande montre les différences entre les fichiers qui résultent de la +construction locale et des fichiers qui résultent de la construction sur @code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging -Files,, diffutils, Comparing and Merging Files}). The @command{diff} -command works great for text files. When binary files differ, a better -option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps -visualize differences for all kinds of files. +Files,, diffutils, Comparing and Merging Files}). La commande +@command{diff} fonctionne bien avec des fichiers texte. Lorsque des +fichiers binaires diffèrent cependant, @uref{https://diffoscope.org/, +Diffoscope} est une meilleure option. C'est un outil qui aide à visualiser +les différences entre toute sorte de fichiers. Une fois que vous avez fait ce travail, vous pourrez dire si les différences sont dues au non-déterminisme du processus de construction ou à la @@ -9899,9 +10212,9 @@ n'implique pas que Guix, mais une grande partie de la communauté des logiciels libres. Pendant ce temps, @command{guix challenge} est un outil pour aider à corriger le problème. -If you are writing packages for Guix, you are encouraged to check whether -@code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the -same build result as you did with: +Si vous écrivez un paquet pour Guix, nous vous encourageons à vérifier si +@code{@value{SUBSTITUTE-SERVER}} et d'autres serveurs de substituts +obtiennent le même résultat que vous avec : @example $ guix challenge @var{paquet} @@ -10042,9 +10355,9 @@ guix container exec @var{pid} @var{programme} @var{arguments}@dots{} nom du fichier exécutable dans le système de fichiers racine du conteneur. @var{arguments} sont les options supplémentaires à passer à @var{programme}. -The following command launches an interactive login shell inside a Guix -system container, started by @command{guix system container}, and whose -process ID is 9001: +La commande suivante lance un shell de connexion interactif dans un +conteneur Guix System, démarré par @command{guix system container} et dont +le PID est 9001 : @example guix container exec 9001 /run/current-system/profile/bin/bash --login @@ -10097,16 +10410,17 @@ https://guix.example.org @end example @cindex intégration continue, statistiques -As you can see, it reports the fraction of all the packages for which -substitutes are available on the server---regardless of whether substitutes -are enabled, and regardless of whether this server's signing key is -authorized. It also reports the size of the compressed archives (``nars'') -provided by the server, the size the corresponding store items occupy in the -store (assuming deduplication is turned off), and the server's throughput. -The second part gives continuous integration (CI) statistics, if the server -supports it. In addition, using the @option{--coverage} option, -@command{guix weather} can list ``important'' package substitutes missing on -the server (see below). +Comme vous pouvez le voir, elle rapporte le pourcentage des paquets pour +lesquels des substituts sont disponibles sur le serveur — indépendamment du +fait que les substituts soient activés, et indépendamment du fait que la +clef de signature du serveur soit autorisée. Elle rapporte aussi la taille +des archives compressées (« nars ») fournies par le serveur, la taille des +éléments du dépôt correspondant dans le dépôt (en supposant que la +déduplication soit désactivée) et la vitesse du serveur. La deuxième partie +donne des statistiques sur l'intégration continue (CI), si le serveur le +supporte. En plus, avec l'option @option{--coverage}, @command{guix +weather} peut lister les substituts de paquets « importants » qui font +défaut sur le serveur (voir plus bas). Pour cela, @command{guix weather} récupère par HTTP(S) les métadonnées (@dfn{narinfos}@ de tous les éléments du dépôts pertinents. Comme @@ -10139,35 +10453,35 @@ package} (@pxref{Invoquer guix package}). @item --coverage[=@var{count}] @itemx -c [@var{count}] -Report on substitute coverage for packages: list packages with at least -@var{count} dependents (zero by default) for which substitutes are -unavailable. Dependent packages themselves are not listed: if @var{b} -depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, -even though @var{b} usually lacks substitutes as well. The result looks -like this: +Rapporte la couverture des substituts pour les paquets : liste les paquets +avec au moins @var{count} autres paquets qui en dépendent (zéro par défaut) +pour lesquels il n'y a pas de substitut. Les paquets qui en dépendent ne +sont pas listés : si @var{b} dépend de @var{a} et que @var{a} n'a pas de +substitut, seul @var{a} est listé, même si @var{b} n'a habituellement pas de +substitut non plus. Le résultat ressemble à cela : @example $ guix weather --substitute-urls=https://ci.guix.fr.info -c 10 -computing 8,983 package derivations for x86_64-linux... -looking for 9,343 store items on https://ci.guix.fr.info... -updating substitutes from 'https://ci.guix.fr.info'... 100.0% +calcul de 8 983 dérivations de paquets pour x86_64-linux… +recherche de 9 343 éléments du dépôt sur https://ci.guix.fr.info… +mise à jour des substituts depuis « https://ci.guix.fr.info »… 100,0 % https://ci.guix.fr.info - 64.7% substitutes available (6,047 out of 9,343) + 64.7 % des substituts sont disponibles (6,047 sur 9,343) @dots{} -2502 packages are missing from 'https://ci.guix.fr.info' for 'x86_64-linux', among which: +2502 paquets ne sont pas sur « https://ci.guix.fr.info » pour « x86_64-linux », parmi lesquels : 58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0 46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1 37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008 @dots{} @end example -What this example shows is that @code{kcoreaddons} and presumably the 58 -packages that depend on it have no substitutes at @code{ci.guix.fr.info}; -likewise for @code{qgpgme} and the 46 packages that depend on it. +Ce que montre cet exemple est que @code{kcoreaddons} et probablement les 58 +paquets qui en dépendent n'ont pas de substituts sur @code{ci.guix.fr.info} ; +de même pour @code{qgpgme} et les 46 paquets qui en dépendent. -If you are a Guix developer, or if you are taking care of this build farm, -you'll probably want to have a closer look at these packages: they may -simply fail to build. +Si vous êtes un développeur de Guix, ou si vous prenez soin de cette ferme +de construction, vous voudrez sans doute inspecter plus finement ces paquets +: ils peuvent simplement avoir échoué à la construction. @end table @node Invoquer guix processes @@ -10265,6 +10579,8 @@ est configuré et instancié. Ensuite nous montrons comment ce mécanisme peut fichiers. * Périphériques mappés:: Gestion des périphériques de bloc. * Comptes utilisateurs:: Spécifier des comptes utilisateurs. +* Disposition du clavier:: La manière dont le système interprète les + touches du clavier. * Régionalisation:: Paramétrer la langue et les conventions culturelles. * Services:: Spécifier les services du système. @@ -10276,7 +10592,7 @@ est configuré et instancié. Ensuite nous montrons comment ce mécanisme peut * Configuration du chargeur d'amorçage:: Configurer le chargeur d'amorçage. * Invoquer guix system:: Instantier une configuration du système. -* Running Guix in a VM:: How to run Guix System in a virtual machine. +* Lancer Guix dans une VM:: Comment lancer Guix dans une machine virtuelle. * Définir des services:: Ajouter de nouvelles définitions de services. @end menu @@ -10376,13 +10692,14 @@ le meilleur paquet pour un nom donné ou un nom et une version : @cindex services @vindex %base-services -The @code{services} field lists @dfn{system services} to be made available -when the system starts (@pxref{Services}). The @code{operating-system} -declaration above specifies that, in addition to the basic services, we want -the OpenSSH secure shell daemon listening on port 2222 (@pxref{Services réseau, @code{openssh-service-type}}). Under the hood, -@code{openssh-service-type} arranges so that @command{sshd} is started with -the right command-line options, possibly with supporting configuration files -generated as needed (@pxref{Définir des services}). +Le champ @code{services} liste les @dfn{services système} à rendre +disponible lorsque le système démarre (@pxref{Services}). La déclaration +@code{operating-system} au-dessus spécifie que, en plus des services de +base, on veut que le démon ssh OpenSSH écoute sur le port 2222 +(@pxref{Services réseau, @code{openssh-service-type}}). Sous le capot, +@code{openssh-service-type} s'arrange pour que @code{sshd} soit lancé avec +les bonnes options de la ligne de commande, éventuellement en générant des +fichiers de configuration (@pxref{Définir des services}). @cindex personnalisation des services @findex modify-services @@ -10508,9 +10825,9 @@ La sortie de la dérivation est un répertoire qui se réfère à tous les paquets et d'autres fichiers supports requis pour instancier @var{os}. @end deffn -This procedure is provided by the @code{(gnu system)} module. Along with -@code{(gnu services)} (@pxref{Services}), this module contains the guts of -Guix System. Make sure to visit it! +Cette procédure est fournie par le module @code{(gnu system)}. Avec +@code{(gnu services)} (@pxref{Services}), ce module contient les entrailles +du système Guix. Ouvrez-le un jour ! @node Référence de système d'exploitation @@ -10538,6 +10855,29 @@ passer sur la ligne de commande du noyau — p.@: ex.@: @item @code{bootloader} L'objet de configuration du chargeur d'amorçage. @xref{Configuration du chargeur d'amorçage}. +@item @code{label} +This is the label (a string) as it appears in the bootloader's menu entry. +The default label includes the kernel name and version. + +@item @code{keyboard-layout} (par défaut : @code{#f}) +Ce champ spécifie la disposition du clavier à utiliser dans la console. Il +peut être soit @code{#f}, auquel cas la disposition par défaut est utilisée +(habituellement anglais américain), ou un enregistrement +@code{<keyboard-layout>}. + +Cette disposition du clavier est effective dès que le noyau démarre. Par +exemple, c'est la disposition du clavier effective lorsque vous saisissez la +phrase de passe de votre système de fichier racine sur une partition +utilisant @code{luks-device-mapping} (@pxref{Périphériques mappés}). + +@quotation Remarque +Cela ne spécifie @emph{pas} la disposition clavier utilisée par le chargeur +d'amorçage, ni celle utilisée par le serveur d'affichage graphique. +@xref{Configuration du chargeur d'amorçage}, pour plus d'information sur la manière de +spécifier la disposition du clavier pour le chargeur d'amorçage. @xref{Système de fenêtrage X}, pour plus d'informations sur la manière de spécifier la disposition +du clavier utilisée par le système de fenêtrage X. +@end quotation + @item @code{initrd-modules} (par défaut : @code{%base-initrd-modules}) @cindex initrd @cindex disque de RAM initial @@ -10647,6 +10987,14 @@ La configuration de NSS de la libc (name service switch) — un objet Une liste d'objets services qui dénotent les services du système. @xref{Services}. +@cindex services essentiels +@item @code{essential-services} (par défaut : …) +La liste des « services essentiels » — c.-à-d.@: les services comme des +instance de @code{system-service-type} et @code{host-name-service-type} +(@pxref{Référence de service}), qui sont dérivés de la définition du système +d'exploitation lui-même. En tant qu'utilisateur vous ne devriez +@emph{jamais} toucher à ce champ. + @item @code{pam-services} (par défaut : @code{(base-pam-services)}) @cindex PAM @cindex pluggable authentication modules @@ -10668,6 +11016,27 @@ peuvent gagner. La valeur par défaut est que seul @code{root} et les membres du groupe @code{wheel} peuvent utiliser @code{sudo}. @end table + +@deffn {Scheme Syntax} this-operating-system +When used in the @emph{lexical scope} of an operating system field +definition, this identifier resolves to the operating system being defined. + +The example below shows how to refer to the operating system being defined +in the definition of the @code{label} field: + +@example +(use-modules (gnu) (guix)) + +(operating-system + ;; ... + (label (package-full-name + (operating-system-kernel this-operating-system)))) +@end example + +It is an error to refer to @code{this-operating-system} outside an operating +system definition. +@end deffn + @end deftp @node Systèmes de fichiers @@ -11038,6 +11407,7 @@ C'est une valeur booléenne qui indique si le compte est un compte « système gestionnaires de connexion graphiques ne les liste pas. @anchor{user-account-password} +@cindex mot de passe, pour les comptes utilisateurs @item @code{password} (par défaut : @code{#f}) Vous laisseriez normalement ce champ à @code{#f} et initialiseriez les mots de passe utilisateurs en tant que @code{root} avec la commande @@ -11047,7 +11417,24 @@ bien sûr préservés après redémarrage et reconfiguration. Si vous voulez @emph{vraiment} définir un mot de passe pour un compte, alors ce champ doit contenir le mot de passe chiffré, comme une chaîne de -caractère. @xref{crypt,,, libc, The GNU C Library Reference Manual}, pour +caractère. Vous pouvez utiliser la procédure @code{crypt} pour cela : + +@example +(user-account + (name "charlie") + (group "users") + + ;; Spécifie un mot de passe initial hashé avec sha512. + (password (crypt "InitialPassword!" "$6$abc"))) +@end example + +@quotation Remarque +Le hash de ce mot de passe initial sera disponible dans un fichier dans +@file{/gnu/store}, lisible par tous les utilisateurs, donc cette méthode est +à utiliser avec soin. +@end quotation + +@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, pour plus d'information sur le chiffrement des mots de passe et @ref{Encryption,,, guile, GNU Guile Reference Manual}, pour des informations sur la procédure @code{crypt} de Guile. @@ -11105,6 +11492,145 @@ Remarquez que le compte « root » n'est pas défini ici. C'est un cas particulier et il est automatiquement ajouté qu'il soit spécifié ou non. @end defvr +@node Disposition du clavier +@section Disposition du clavier + +@cindex disposition du clavier +@cindex disposition clavier +Pour spécifier ce que fait chaque touche de votre clavier, vous devez dire +au système d'exploitation quel @dfn{disposition du clavier} vous voulez +utiliser. Par défaut, lorsque rien n'est spécifié, la disposition QWERTY +pour l'anglais américain pour les claviers 105 touches est utilisée. +Cependant, les germanophones préfèrent généralement la disposition QWERTZ, +les francophones la disposition AZERTY etc ; les hackers peuvent préférer +Dvorak ou bépo, et peuvent même vouloir personnaliser plus en détails +l'effet de certaines touches. Cette section explique comment faire cela. + +@cindex disposition du clavier, définition +Il y a trois composants qui devront connaître votre disposition du clavier : + +@itemize +@item +Le @emph{chargeur d'amorçage} peut avoir besoin de connaître la disposition +clavier que vous voulez utiliser (@pxref{Configuration du chargeur d'amorçage, +@code{keyboard-layout}}). C'est utile si vous voulez par exemple vous +assurer que vous pouvez saisir la phrase de passe de votre partition racine +chiffrée avec la bonne disposition. + +@item +Le @emph{noyau du système d'exploitation}, Linux, en aura besoin pour +configurer correctement la console (@pxref{Référence de système d'exploitation, +@code{keyboard-layout}}). + +@item +Le @emph{serveur d'affichage graphique}, habituellement Xorg, a aussi sa +propre idée sur la disposition du clavier à utiliser (@pxref{Système de fenêtrage X, +@code{keyboard-layout}}). +@end itemize + +Guix vous permet de configurer les trois séparément mais, heureusement, il +vous permet de partager la même disposition du clavier pour chacun des trois +composants. + +@cindex XKB, disposition du clavier +Les dispositions de clavier sont représentées par des enregistrements créés +par la procédure @code{keyboard-layout} de @code{(gnu system keyboard)}. En +suivant l'extension clavier de X (XKB), chaque disposition a trois attributs +: un nom (souvent un code de langue comme « fi » pour le finnois ou « jp » +pour le japonais), un nom de variante facultatif, un nom de modèle de +clavier facultatif et une liste éventuellement vide d'options +supplémentaires. Dans la plupart des cas, vous n'aurez besoin que du nom de +la disposition. Voici quelques exemples : + +@example +;; La disposition QWERTZ allemande. Ici on suppose que vous utilisez un clavier +;; type « pc105 » standard. +(keyboard-layout "de") + +;; La variante bépo de la disposition française. +(keyboard-layout "fr" "bepo") + +;; La disposition catalane. +(keyboard-layout "es" "cat") + +;; La disposition espagnole américaine. En plus, la touche +;; « Verr. Maj. » est utilisée comme touche « Ctrl » supplémentaire, +;; et la touche « Menu » est utilisée comme touche « Compose » pour +;; saisir des lettres accentuées. +(keyboard-layout "latam" + #:options '("ctrl:nocaps" "compose:menu")) + +;; La disposition russe pour un clavier de ThinkPad. +(keyboard-layout "ru" #:model "thinkpad") + +;; La disposition « US internationale », qui est comme la disposition US plus +;; des touches mortes pour saisir des caractères accentués. Cet exemple est pour +;; un clavier de MacBook Apple. +(keyboard-layout "us" "intl" #:model "macbook78") +@end example + +Voir le répertoire @file{share/X11/xkb} du paquet @code{xkeyboard-config} +pour une liste complète des disposition, des variantes et des modèles pris +en charge. + +@cindex disposition du clavier, configuration +Disons que vous voulez que votre système utilise la disposition turque sur +tout le système — du chargeur d'amorçage à Xorg en passant par la console. +Voici ce que votre configuration du système contiendrait : + +@findex set-xorg-configuration +@lisp +;; Utiliser la disposition turque pour le chargeur d'amorçage, +;; la console et Xorg. +(operating-system + ;; ... + (keyboard-layout (keyboard-layout "tr")) ;pour la console + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (target "/boot/efi") + (keyboard-layout keyboard-layout))) ;pour GRUB + (services (cons (set-xorg-configuration + (xorg-configuration ;pour Xorg + (keyboard-layout keyboard-layout))) + %desktop-services))) +@end lisp + +Dans l'exemple ci-dessus, pour GRUB et pour Xorg, nous nous référons +simplement au champ @code{keyboard-layout} au dessus, mais on pourrait aussi +bien se référer à une autre disposition. La procédure +@code{set-xorg-configuration} communique la configuration Xorg désirée au +gestionnaire de connexion, par défaut GDM. + +Nous avons discuté de la manière de spécifier la disposition du clavier +@emph{par défaut} lorsque votre système démarre, mais vous pouvez aussi +l'ajuster à l'exécution : + +@itemize +@item +Si vous utilisez GNOME, son panneau de configuration contient une entrée « +Région & Langues » où vous pouvez choisir une ou plusieurs dispositions du +clavier. + +@item +Sous Xorg, la commande @command{sexkbmap} (du paquet du même nom) vous +permet de changer la disposition actuelle. Par exemple, voilà comment +changer la disposition pour un Dvorak américain : + +@example +setxkbmap us dvorak +@end example + +@item +La commande @code{loadkey} change la disposition du clavier dans la console +Linux. Cependant, remarque que @code{loadkeys} n'utilise @emph{pas} la +catégorisation des dispositions XKB décrite plus haut. La commande suivante +charge la disposition bépo française : + +@example +loadkeys fr-bepo +@end example +@end itemize + @node Régionalisation @section Régionalisation @@ -11221,10 +11747,11 @@ mais pas toutes les données linguistiques de la libc 2.21 (spécifiquement les données @code{LC_COLLATE} sont incompatibles) ; donc les appels à @code{setlocale} peuvent échouer, mais les programmes ne plantent pas. -The ``problem'' with Guix is that users have a lot of freedom: They can -choose whether and when to upgrade software in their profiles, and might be -using a libc version different from the one the system administrator used to -build the system-wide locale data. +Le « problème » avec Guix c'est que les utilisateurs ont beaucoup de liberté +: ils peuvent choisir s'ils veulent et quand ils veulent mettre à jour les +logiciels de leur profil, et peuvent utiliser une version différente de la +libc de celle que l'administrateur système utilise pour construire les +données linguistiques du système global. Heureusement, les utilisateurs non privilégiés peuvent aussi installer leur propres données linguistiques et définir @var{GUIX_LOCPATH} comme il le faut @@ -11245,7 +11772,7 @@ champ @code{locale-libcs} de @code{operating-system} : (locale-libcs (list glibc-2.21 (canonical-package glibc)))) @end example -cet exemple créera un système contenant les définitions des paramètres +Cet exemple créera un système contenant les définitions des paramètres linguistiques pour la libc 2.21 et pour la version actuelle de la libc dans @file{/run/current-system/locale}. @@ -11260,11 +11787,13 @@ configuration (@pxref{Utiliser le système de configuration}). Les services systèmes sont typiquement des démons lancés au démarrage ou d'autres actions requises à ce moment-là — p.@: ex.@: configurer les accès réseaux. -Guix has a broad definition of ``service'' (@pxref{Composition de services}), -but many services are managed by the GNU@tie{}Shepherd (@pxref{Services Shepherd}). On a running system, the @command{herd} command allows you to -list the available services, show their status, start and stop them, or do -other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd -Manual}). For example: +Guix a une définition large de « service » (@pxref{Composition de services}), +mais beaucoup de services sont gérés par le GNU@tie{}Shepherd +(@pxref{Services Shepherd}). Sur un système lancé, la commande +@command{herd} vous permet de lister les services disponibles, montrer leur +statut, les démarrer et les arrêter, ou faire d'autres opérations +spécifiques (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}). Par +exemple : @example # herd status @@ -11314,10 +11843,11 @@ par les services de base qui peuvent être utilisés avec une déclaration * Services de téléphonie:: Services de téléphonie. * Services de surveillance:: Services de surveillance. * Services Kerberos:: Services Kerberos. +* Services LDAP:: services LDAP * Services web:: Services web. * Services de certificats:: Certificats TLS via Let's Encrypt. * Services DNS:: Démons DNS@. -* Services VPN:: Démons VPN +* Services VPN:: Démons VPN. * Système de fichiers en réseau:: Services liés à NFS@. * Intégration continue:: Le service Cuirass. * Services de gestion de l'énergie:: Augmenter la durée de vie de la @@ -11490,8 +12020,9 @@ Sinon et s'il y a une valeur pour une option @code{console} avec un tty sur la ligne de commande du noyau Linux, agetty extraira le nom du périphérique du port série et l'utilisera. -In both cases, agetty will leave the other serial device settings (baud rate -etc.)@: alone---in the hope that Linux pinned them to the correct values. +Dans les deux cas, agetty laissera les autres paramètres du périphérique +série (baud, etc) sans y toucher — dans l'espoir que Linux leur a assigné +les bonnes valeurs. @item @code{baud-rate} (par défaut : @code{#f}) Une chaîne qui contient une liste d'un ou plusieurs taux de baud séparés par @@ -11548,7 +12079,7 @@ connexion, soit non définie, auquel cas la valeur par défaut est la commande @item @code{local-line} (par défaut : @code{#f}) Contrôle le drapeau CLOCAL. Cette option accepte l'un des trois symboles comme argument, @code{'auto}, @code{'always} ou @code{'never}. Si la valeur -est @code{#f}, la valeur par défaut choisie par agetty est @code{'auto}… +est @code{#f}, la valeur par défaut choisie par agetty est @code{'auto}. @item @code{extract-baud?} (par défaut : @code{#f}) Lorsque la valeur est @code{#t}, dit à agetty d'essayer d'extraire la taux @@ -11853,15 +12384,15 @@ Nombre de comptes utilisateurs de construction à créer. @item @code{authorize-key?} (par défaut : @code{#t}) @cindex substituts, autorisations -Whether to authorize the substitute keys listed in -@code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} +Indique s'il faut autoriser ou non les clefs de substituts listées dans +@code{authorize-keys} — par défaut celle de @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}). @vindex %default-authorized-guix-keys @item @code{authorized-keys} (par défaut : @var{%default-authorized-guix-keys}) -The list of authorized key files for archive imports, as a list of -string-valued gexps (@pxref{Invoquer guix archive}). By default, it -contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}). +La liste des fichiers de clefs autorisées pour les imports d'archives, en +tant que liste de gexps sous forme de chaînes (@pxref{Invoquer guix archive}). Par défaut, elle contient celle de +@code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}). @item @code{use-substitutes?} (par défaut : @code{#t}) S'il faut utiliser les substituts. @@ -11922,8 +12453,8 @@ donné. "RUN+=\"/path/to/script\""))) @end example -The @command{herd rules udev} command, as root, returns the name of the -directory containing all the active udev rules. +La commande @command{herd rules udev}, en tant que root, renvoie le nom du +répertoire contenant toutes les règles udev actives. @end deffn Ici on montre comment le service @var{udev-service} par défaut peut être @@ -12020,29 +12551,6 @@ C'est le nom du fichier où des octets aléatoires sont sauvegardés par redémarrage. Sa valeur par défaut est @file{/var/lib/random-seed}. @end defvr -@cindex disposition clavier -@cindex clavier -@deffn {Procédure Scheme} console-keymap-service @var{files} ... -@cindex disposition du clavier -Renvoie un service qui charge les dispositions claviers de @var{files} avec -la commande @command{loadkeys}. Vraisemblablement, vous voudrez charger une -disposition par défaut, ce qui se fait ainsi : - -@example -(console-keymap-service "dvorak") -@end example - -Ou par exemple pour un clavier suédois, vous pourriez avoir besoin de -combiner les dispositions suivantes : -@example -(console-keymap-service "se-lat6" "se-fi-lat6") -@end example - -Vous pouvez aussi spécifier le nom de fichier (ou les noms de fichiers) -complets de vos dispositions. Voir @code{man loadkeys} pour des détails. - -@end deffn - @cindex souris @cindex gpm @defvr {Variable Scheme} gpm-service-type @@ -12603,11 +13111,11 @@ Liste d'arguments de la ligne de commande supplémentaires à passer au démon. @cindex iptables @defvr {Variable Scheme} iptables-service-type -This is the service type to set up an iptables configuration. iptables is a -packet filtering framework supported by the Linux kernel. This service -supports configuring iptables for both IPv4 and IPv6. A simple example -configuration rejecting all incoming connections except those to the ssh -port 22 is shown below. +C'est le type de service pour mettre en place une configuration iptables. +iptables est un outil de filtrage de paquets pris en charge par le noyau +Linux. Ce service prend en charge la configuration d'iptable pour IPv4 et +IPv6. Un exemple de configuration simple, qui rejette les connexions +entrantes sauf celles sur le port 22 est présenté ci-dessous. @lisp (service iptables-service-type @@ -12652,9 +13160,9 @@ Les règles iptables à utiliser. Elles seront passées à @cindex NTP (Network Time Protocol), service @cindex horloge @defvr {Variable Scheme} ntp-service-type -This is the type of the service running the @uref{http://www.ntp.org, -Network Time Protocol (NTP)} daemon, @command{ntpd}. The daemon will keep -the system clock synchronized with that of the specified NTP servers. +C'est le type de service qui lance le démon @uref{http://www.ntp.org, +Network Time Protocol (NTP)}, @command{ntpd}. Le démon gardera l'horloge +système synchronisée avec celle des serveurs NTP spécifiés. La valeur de ce service est un objet @code{ntpd-configuration}, décrit ci-dessous. @@ -12817,18 +13325,19 @@ Une chaîne de caractères qui doit correspondre à une entrée dans Indique si @command{inetd} devrait attendre que le serveur ait quitté avant d'écouter de nouvelles demandes de service. @item @code{user} -A string containing the user (and, optionally, group) name of the user as -whom the server should run. The group name can be specified in a suffix, -separated by a colon or period, i.e.@: @code{"user"}, @code{"user:group"} or -@code{"user.group"}. +Une chaîne de caractères contenant le nom d'utilisateur (et éventuellement +de groupe) de l'utilisateur en tant que lequel le serveur devrait tourner. +Le nom du groupe peut être spécifié comme un suffixe, séparé par un +deux-points ou un point, c.-à-d.@: @code{"utilisateur"}, +@code{"utilisateur:groupe"} ou @code{"utilisateur.groupe"}. @item @code{program} (par défaut : @code{"internal"}) Le programme du serveur qui servira les requêtes, ou @code{"internal"} si @command{inetd} devrait utiliser un service inclus. @item @code{arguments} (par défaut : @code{'()}) -A list strings or file-like objects, which are the server program's -arguments, starting with the zeroth argument, i.e.@: the name of the program -itself. For @command{inetd}'s internal services, this entry must be -@code{'()} or @code{'("internal")}. +Une liste de chaînes de caractères ou d'objets simili-fichiers qui sont les +arguments du programme du serveur, en commençant par le zéroième argument, +c.-à-d.@: le nom du programme lui-même. Pour les services internes à +@command{inetd}, cette entrée doit être @code{'()} ou @code{'("internal")}. @end table @xref{Configuration file,,, inetutils, GNU Inetutils} pour trouver une @@ -13096,8 +13605,7 @@ Indique s'il faut autoriser la redirection TCP. Indique s'il faut autoriser les ports de passerelle. @item @code{challenge-response-authentication?} (par défaut : @code{#f}) -Specifies whether challenge response authentication is allowed (e.g.@: via -PAM). +Spécifie si l'authentification par défi est autorisée (p.@: ex.@: via PAM). @item @code{use-pam?} (par défaut : @code{#t}) Active l'interface avec le module d'authentification greffable, PAM. Si la @@ -13117,7 +13625,8 @@ connexion des utilisateurs lorsqu'un utilisateur se connecte de manière interactive. @item @code{subsystems} (par défaut : @code{'(("sftp" "internal-sftp"))}) -Configures external subsystems (e.g.@: file transfer daemon). +Configure les sous-systèmes externes (p.@: ex.@: le démon de transfert de +fichiers). C'est une liste de paires, composées chacune du nom du sous-système et d'une commande (avec éventuellement des arguments) à exécuter à la demande du @@ -13183,10 +13692,11 @@ Voir la page de manuel de @file{sshd_config} pour trouver la liste complète des noms de niveaux. @item @code{extra-content} (par défaut : @code{""}) -This field can be used to append arbitrary text to the configuration file. -It is especially useful for elaborate configurations that cannot be -expressed otherwise. This configuration, for example, would generally -disable root logins, but permit them from one specific IP address: +Ce champ peut être utilisé pour ajouter un texte arbitraire au fichier de +configuration. C'est particulièrement utile pour des configurations +élaborées qui ne pourraient pas être exprimées autrement. Cette +configuration, par exemple, désactiverait les connexions en root, mais les +permettrait depuis une adresse IP spécifique : @example (openssh-configuration @@ -13270,51 +13780,52 @@ des navigateurs Web, ne se connectent à Facebook. Le module @code{(gnu services avahi)} fourni la définition suivante. -@defvr {Scheme Variable} avahi-service-type -This is the service that runs @command{avahi-daemon}, a system-wide -mDNS/DNS-SD responder that allows for service discovery and -``zero-configuration'' host name lookups (see @uref{http://avahi.org/}). -Its value must be a @code{zero-configuration} record---see below. +@defvr {Variable Scheme} avahi-service-type +C'est le service qui lance @command{avahi-daemon}, un service système qui +répond aux requêtes mDNS/DNS-SD qui permet la découverte de service et la +recherche de nom en « zéro configuration » (voir @uref{http://avahi.org/}). +Sa valeur doit être un enregistrement @code{zero-configuration} — voir plus +bas. -This service extends the name service cache daemon (nscd) so that it can -resolve @code{.local} host names using -@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name Service Switch}, for information on host name resolution. +Ce service étend le démon de cache de services de noms (nscd) pour qu'il +puisse résoudre les noms d'hôtes en @code{.local} avec +@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name Service Switch}, pour plus d'informations sur la résolution des noms d'hôte. -Additionally, add the @var{avahi} package to the system profile so that -commands such as @command{avahi-browse} are directly usable. +En plus, cela ajoute le paquet @var{avahi} au profil du système pour que les +commandes comme @command{avahi-browse} soient directement utilisables. @end defvr -@deftp {Data Type} avahi-configuration -Data type representation the configuration for Avahi. +@deftp {Type de données} avahi-configuration +Type de données représentant la configuration d'Avahi. @table @asis -@item @code{host-name} (default: @code{#f}) -If different from @code{#f}, use that as the host name to publish for this -machine; otherwise, use the machine's actual host name. +@item @code{host-name} (par défaut : @code{#f}) +Si la valeur n'est pas @code{#f}, utilise cette valeur comme nom d'hôte à +publier pour la machine ; sinon, utilise le vrai nom d'hôte de la machine. -@item @code{publish?} (default: @code{#t}) -When true, allow host names and services to be published (broadcast) over -the network. +@item @code{publish?} (par défaut : @code{#t}) +Lorsque la valeur est vraie, permet la publication sur le réseau (en +diffusion) des noms d'hôtes et des services. -@item @code{publish-workstation?} (default: @code{#t}) -When true, @command{avahi-daemon} publishes the machine's host name and IP -address via mDNS on the local network. To view the host names published on -your local network, you can run: +@item @code{publish-workstation?} (par défaut : @code{#t}) +Lorsque la valeur est vraie, @command{avahi-daemon} publie le nom d'hôte et +l'adresse IP de la machine via mDNS sur le réseau local. Pour voir les noms +d'hôtes publiés sur votre réseau local, vous pouvez lancer : @example avahi-browse _workstation._tcp @end example -@item @code{wide-area?} (default: @code{#f}) -When true, DNS-SD over unicast DNS is enabled. +@item @code{wide-area?} (par défaut : @code{#f}) +Lorsque la valeur est vraie, DNS-SD sur DNS unicast est activé. -@item @code{ipv4?} (default: @code{#t}) -@itemx @code{ipv6?} (default: @code{#t}) -These fields determine whether to use IPv4/IPv6 sockets. +@item @code{ipv4?} (par défaut : @code{#t}) +@itemx @code{ipv6?} (par défaut : @code{#t}) +Ces champs déterminent s'il faut utiliser des socket IPv4/IPv6. -@item @code{domains-to-browse} (default: @code{'()}) -This is a list of domains to browse. +@item @code{domains-to-browse} (par défaut : @code{'()}) +C'est la liste des domaines sur lesquels naviguer. @end table @end deftp @@ -13341,10 +13852,18 @@ Objet de paquet de Open vSwitch. @cindex X11 @cindex Système de fenêtrage X @cindex gestionnaire de connexion -Le support pour le système d'affichage graphique X Window — en particulier -Xorg — est fournit par le module @code{(gnu services xorg)}. Remarquez -qu'il n'y a pas de procédure @code{xorg-service}. À la place, le serveur X -est démarré par le @dfn{gestionnaire de connexion}, par défaut SLiM. +La prise en chargue du système d'affichage graphique X Window — en +particulier Xorg — est fournit par le module @code{(gnu services xorg)}. +Remarquez qu'il n'y a pas de procédure @code{xorg-service}. À la place, le +serveur X est démarré par le @dfn{gestionnaire de connexion}, par défaut le +gestionnaire d'affichage de GNOME (GDM). + +@cindex GDM +@cindex GNOME, gestionnaire de connexion +GDM permet évidemment aux utilisateurs de se connecter et d'ouvrir un +gestionnaire de fenêtre ou un gestionnaire d'environnement autre que GNOME ; +pour ceux qui utilisent GNOME, GDM est requis pour certaines fonctionnalités +comme l'écran de verrouillage automatique. @cindex gestionnaire de fenêtre Pour utiliser X11, vous devez installer au moins un @dfn{gestionnaire de @@ -13353,24 +13872,62 @@ préférence en l'ajoutant au champ @code{packages} de votre définition de système d'exploitation (@pxref{Référence de système d'exploitation, system-wide packages}). -@defvr {Variable Scheme} slim-service-type -C'est de type pour le gestionnaire de connexion graphique SLiM pour X11. +@defvr {Variable Scheme} gdm-service-type +C'est le type pour le @uref{https://wiki.gnome.org/Projects/GDM/, +gestionnaire d'affichage de GNOME} (GDM), un programme qui gère les serveurs +d'affichage graphiques et s'occupe de la connexion graphique des +utilisateurs. Sa valeur doit être un @code{gdm-configuration} (voir plus +bas). @cindex types de sessions (X11) @cindex X11, types de sessions -SLiM cherche des @dfn{types de sessions} définies par les fichiers +GDM cherche des @dfn{types de sessions} définies par les fichiers @file{.desktop} dans @file{/run/current-system/profile/share/xsessions} et -permet aux utilisateurs de choisir une session depuis l'écran de connexion -avec @kbd{F1}. Les paquets comme @code{xfce}, @code{sawfish} et -@code{ratpoison} fournissent des fichiers @file{.desktop} ; les ajouter à -l'ensemble des paquets du système les rendra automatiquement disponibles sur -l'écran de connexion. +permet aux utilisateurs de choisir une session depuis l'écran de connexion. +Les paquets comme @code{gnmoe}, @code{xfce} et @code{i3} fournissent des +fichiers @file{.desktop} ; les ajouter à l'ensemble des paquets du système +les rendra automatiquement disponibles sur l'écran de connexion. En plus, les fichiers @file{~/.xsession} sont honorées. Lorsqu'il est disponible, @file{~/.xsession} doit être un fichier exécutable qui démarre un gestionnaire de fenêtre au un autre client X. @end defvr +@deftp {Type de données} gdm-configuration +@table @asis +@item @code{auto-login?} (par défaut : @code{#f}) +@itemx @code{default-user} (par défaut : @code{#f}) +Lorsque @code{auto-login?} est faux, GDM présente un écran de connexion. + +Lorsque @code{auto-login?} est vrai, GDM se connecte directement en tant que +@code{default-user}. + +@item @code{gnome-shell-assets} (par défaut : …) +Liste de données requises par GDM : un thème d'icônes, des polices, etc. + +@item @code{xorg-configuration} (par défaut : @code{(xorg-configuration)}) +Configuration du serveur graphique Xorg. + +@item @code{xsession} (par défaut : @code{xinitrc}) +Le script à lancer avant de démarrer une session X. + +@item @code{dbus-daemon} (par défaut : @code{dbus-daemon-wrapper}) +Nom du fichier de l'exécutable @code{dbus-daemon}. + +@item @code{gdm} (par défaut : @code{gdm}) +Le paquet GDM à utiliser. +@end table +@end deftp + +@defvr {Variable Scheme} slim-service-type +C'est de type pour le gestionnaire de connexion graphique SLiM pour X11. + +Comme GDM, SLiM recherche des types de sessions décrites par des fichiers +@file{.desktop} et permet aux utilisateurs de choisir une session à partir +de l'écran de connexion avec @kbd{F1}. Il comprend aussi les fichiers +@file{~/.xsession}. +@end defvr + @deftp {Type de données} slim-configuration Type de données représentant la configuration de @code{slim-service-type}. @@ -13405,8 +13962,8 @@ système ou dans votre profil utilisateur. Sinon, si connecter. @end quotation -@item @code{startx} (par défaut : @code{(xorg-start-command)}) -La commande utilisée pour démarrer le serveur graphique X11. +@item @code{xorg-configuration} (par défaut : @code{(xorg-configuration)}) +Configuration du serveur graphique Xorg. @item @code{xauth} (par défaut : @code{xauth}) Le paquet XAuth à utiliser. @@ -13463,7 +14020,7 @@ Le PATH par défaut à utiliser. UID minimum pour être affiché dans SDDM. @item @code{maximum-uid} (par défaut : 2000) -UID maximum pour être affiché dans SDDM. +UID maximum pour être affiché dans SDDM @item @code{remember-last-user?} (par défaut : #t) S'il faut se rappeler le dernier utilisateur connecté. @@ -13485,8 +14042,8 @@ Le script à lancer avant de démarrer une session wayland. Le répertoire où trouver les fichiers .desktop qui démarrent des sessions wayland. -@item @code{xorg-server-path} (par défaut : @code{xorg-start-command}) -Chemin vers xorg-server. +@item @code{xorg-configuration} (par défaut : @code{(xorg-configuration)}) +Configuration du serveur graphique Xorg. @item @code{xauth-path} (par défaut : @code{#~(string-append #$xauth "/bin/xauth")}) Chemin vers xauth. @@ -13509,9 +14066,6 @@ Répertoire où trouver les fichiers .desktop pour les sessions X. @item @code{minimum-vt} (par défaut : 7) VT minimal à utiliser. -@item @code{xserver-arguments} (par défaut : "-nolisten tcp") -Arguments à passer à xorg-server. - @item @code{auto-login-user} (par défaut : "") Utilisateur à utiliser pour la connexion automatique. @@ -13537,100 +14091,77 @@ avec une configuration de type @code{<sddm-configuration>}. @end example @end deffn -@deffn {Procédure Scheme} xorg-start-command [#:guile] @ - [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ -[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server -@var{xorg-server}] [#:xserver-arguments '("-nolisten" "tcp")] Return a -@code{startx} script in which @var{modules}, a list of X module packages, -and @var{fonts}, a list of X font directories, are available. See -@code{xorg-wrapper} for more details on the arguments. The result should be -used in place of @code{startx}. +@cindex Xorg, configuration +@deftp {Type de données} xorg-configuration +Ce type de données représente la configuration du serveur d'affichage +graphique Xorg. Remarquez qu'il ne s'agit pas d'un service Xorg ; à la +place, le serveur X est démarré par un « gestionnaire d'affichage graphique +» comme GDM, SDDM et SLiM. Ainsi, la configuration de ces gestionnaires +d'affichage agrègent un enregistrement @code{xorg-configuration}. -Habituellement le serveur X est démarré par un gestionnaire de connexion. -@end deffn - -@cindex @code{-listen tcp}, for X11. -This procedure is useful to override command line options for the X server, -such as having it listen to over TCP: +@table @asis +@item @code{modules} (par défaut : @code{%default-xorg-modules}) +C'est une liste de @dfn{paquets de module} chargés par le serveur Xorg — +p.@: ex.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard} etc. + +@item @code{fonts} (par défaut : @code{%default-xorg-fonts}) +C'est une liste de répertoires de polices à ajouter au @dfn{chemin de +polices} du serveur. + +@item @code{drivers} (par défaut : @code{'()}) +Cela doit être soit la liste vide, auquel cas Xorg choisit un pilote +graphique automatiquement, soit une liste de noms de pilotes qui seront +essayés dans cet ordre — p.@: ex.@: @code{("modesetting" "vesa")} + +@item @code{resolutions} (par défaut : @code{'()}) +Lorsque @code{resolutions} est la liste vide, Xorg choisit une résolution +d'écran appropriée. Sinon, il doit s'agir d'une liste de résolutions — p.@: +ex.@: @code{((1024 768) (640 480))} + +@cindex disposition du clavier, pour Xorg +@cindex disposition des touches, Xorg +@item @code{keyboard-layout} (par défaut : @code{#f}) +Si la valeur est @code{#f}, Xorg utilise la disposition du clavier par +défaut — habituellement la disposition anglaise américaine (« qwerty ») pour +un clavier de PC à 105 touches. + +Sinon cela doit être un objet @code{keyboard-layout} spécifiant la +disposition du clavier à utiliser lorsque Xorg tourne. @xref{Disposition du clavier} pour plus d'informations sur la manière de spécifier la disposition +du clavier. + +@item @code{extra-config} (par défaut : @code{'()}) +C'est une liste de chaînes de caractères ou d'objets ajoutés au fichier de +configuration. Elle est utile pour ajouter du texte supplémentaire +directement dans le fichier de configuration. + +@item @code{server} (par défaut : @code{xorg-server}) +C'est le paquet fournissant le serveur Xorg. + +@item @code{server-arguments} (par défaut : @code{%default-xorg-server-arguments}) +Liste d'arguments de la ligne de commande supplémentaires à passer au +serveur X. La valeur par défaut est @code{-nolisten tcp}. +@end table +@end deftp -@example -(operating-system - ... - (services - (modify-services %desktop-services - (slim-service-type config => - (slim-configuration - (inherit config) - (startx (xorg-start-command - #:xserver-arguments '("-listen" "tcp")))))))) -@end example - -@deffn {Procédure Scheme} xorg-configuration-file @ - [#:modules %default-xorg-modules] @ -[#:fonts %default-xorg-fonts] @ -[#:drivers '()] [#:resolutions '()] [#:extra-config '()] -Renvoie un fichier de configuration pour le serveur Xorg qui contient des -chemins de recherche pour tous les pilotes communs. - -@var{modules} doit être une liste de @dfn{paquets de modules} chargés par le -serveur Xorg — p.@: ex.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard} -etc. @var{fonts} doit être une liste de répertoires de polices à ajouter au -@dfn{chemin de polices} du serveur. - -@var{drivers} doit être soit la liste vide, auquel cas Xorg choisis un -pilote graphique automatiquement, soit une liste de noms de pilotes qui -seront essayés dans cet ordre — p.@: ex.@: @code{("modesetting" "vesa")}. - -De même, lorsque @var{resolutions} est la liste vide, Xorg choisis une -résolution d'écran appropriée ; autrement, ce doit être une liste de -résolutions — p.@: ex.@: @code{((1024 768) (640 480))}. - -Enfin, @var{extra-config} est une liste de chaînes de caractères ou d'objets -ajoutés au fichier de configuration. Elle est utilisée pour passer du texte -supplémentaire à être ajouté directement au fichier de configuration. +@deffn {Procédure Scheme} set-xorg-configuration @var{config} @ + [@var{login-manager-service-type}] +Dit au gestionnaire de connexion (de type @var{login-manager-service-type}) +d'utiliser @var{config}, un enregistrement <xorg-configuration>. -@cindex disposition clavier -@cindex disposition du clavier -Cette procédure est particulièrement utile pour configurer une disposition -de clavier différente de la disposition US par défaut. Par exemple, pour -utiliser la disposition « bépo » par défaut sur le gestionnaire d'affichage -: +Comme la configuration Xog est incluse dans la configuration du gestionnaire +de connexion — p.@: ex.@: @code{gdm-configuration} — cette procédure fournit +un raccourci pour configurer Xorg. +@end deffn -@example -(define bepo-evdev - "Section \"InputClass\" - Identifier \"evdev keyboard catchall\" - Driver \"evdev\" - MatchIsKeyboard \"on\" - Option \"xkb_layout\" \"fr\" - Option \"xkb_variant\" \"bepo\" -EndSection") +@deffn {Procédure Scheme} xorg-start-command [@var{config}] +Renvoie un script @code{startx} dans lequel les modules, les polices, etc, +spécifiés dans @var{config} sont disponibles. Le résultat devrait être +utilisé à la place de @code{startx}. -(operating-system - ... - (services - (modify-services %desktop-services - (slim-service-type config => - (slim-configuration - (inherit config) - (startx (xorg-start-command - #:configuration-file - (xorg-configuration-file - #:extra-config - (list bepo-evdev))))))))) -@end example - -La ligne @code{MatchIsKeyboard} spécifie que nous n'appliquons la -configuration qu'aux claviers. Sans cette ligne, d'autres périphériques -comme les pavés tactiles ne fonctionneront pas correctement parce qu'ils -seront associés au mauvais pilote. Dans cet exemple, l'utilisateur -utiliserait typiquement @code{setxkbmap fr bepo} pour utiliser sa -disposition de clavier préférée une fois connecté. Le premier argument -correspond à la disposition, tandis que le second argument correspond à la -variante. La ligne @code{xkb_variant} peut être omise pour choisir la -variante par défaut. +Habituellement le serveur X est démarré par un gestionnaire de connexion. @end deffn + @deffn {Procédure Scheme} screen-locker-service @var{package} [@var{program}] Ajoute @var{package}, un paquet pour un verrouiller l'écran ou un économiseur d'écran dont la commande est @var{program}, à l'ensemble des @@ -13648,9 +14179,10 @@ rend utilisable le bon vieux XlockMore. @subsection Services d'impression @cindex support des imprimantes avec CUPS -The @code{(gnu services cups)} module provides a Guix service definition for -the CUPS printing service. To add printer support to a Guix system, add a -@code{cups-service} to the operating system definition: +Le module @code{(gnu services cups)} fournit une définition de service Guix +pour le service d'impression CUPS. Pour ajouter la prise en charge d'une +imprimante à un système Guix, ajoutez un @code{cups-service} à la définition +du système d'exploitation : @deffn {Variable Scheme} cups-service-type Le type de service pour un serveur d'impression CUPS. Sa valeur devrait @@ -14525,7 +15057,7 @@ habituellement utiles dans le contexte d'une installation « de bureau » — c'est-à-dire sur une machine qui fait tourner un service d'affichage graphique, éventuellement avec des interfaces utilisateurs graphiques, etc. Il définit aussi des services qui fournissent des environnements de bureau -spécifiques comme GNOME, XFCE et MATE. +spécifiques comme GNOME, Xfce et MATE. Pour simplifier les choses, le module définit une variable contenant l'ensemble des services que les utilisateurs s'attendent en général à avoir @@ -14535,71 +15067,111 @@ sur une machine avec un environnement graphique et le réseau : C'est la liste des services qui étend @var{%base-services} en ajoutant ou en ajustant des services pour une configuration « de bureau » typique. -En particulier, il ajoute un gestionnaire de connexion graphique (@pxref{Système de fenêtrage X, @code{slim-service}}), des verrouilleurs d'écran, un outil de +En particulier, il ajoute un gestionnaire de connexion graphique (@pxref{Système de fenêtrage X, @code{gdm-service-type}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Services réseau, @code{network-manager-service-type}}), des services de gestion de l'énergie et des couleurs, le gestionnaire de connexion et de session @code{elogind}, le service de privilèges Polkit, le service de géolocalisation GeoClue, le -démon Accounts Service qui permet aux utilisateurs autorisés de changer leur -mot de passe, un client NTP (@pxref{Services réseau}), le démon Avahi, -et le service name service switch est configuré pour pouvoir utiliser -@code{nss-mdns} (@pxref{Name Service Switch, mDNS}). +démon Accounts Service qui permet aux utilisateurs autorisés de changer les +mots de passe du système, un client NTP (@pxref{Services réseau}), le +démon Avahi, et le service name service switch est configuré pour pouvoir +utiliser @code{nss-mdns} (@pxref{Name Service Switch, mDNS}). @end defvr La variable @var{%desktop-services} peut être utilisée comme champ @code{services} d'une déclaration @code{operating-system} (@pxref{Référence de système d'exploitation, @code{services}}). -En plus, les procédures @code{gnome-desktop-service}, -@code{xfce-desktop-service}, @code{mate-desktop-service} et -@code{enlightenment-desktop-service-type} peuvent ajouter GNOME, XFCE, MATE +En plus, les procédures @code{gnome-desktop-service-type}, +@code{xfce-desktop-service}, @code{mate-desktop-service-type} et +@code{enlightenment-desktop-service-type} peuvent ajouter GNOME, Xfce, MATE ou Enlightenment à un système. « Ajouter GNOME » signifie que les services du système comme les utilitaires d'ajustement de la luminosité et de gestion de l'énergie sont ajoutés au système, en étendant @code{polkit} et @code{dbus} de la bonne manière, ce qui permet à GNOME d'opérer avec des privilèges plus élevés sur un nombre limité d'interfaces systèmes spécialisées. En plus, ajouter un service construit par -@code{gnome-desktop-service} ajoute le métapaquet GNOME au profil du -système. de même, ajouter le service XFCE ajoute le métapaquet @code{xfce} -au profil système, mais il permet aussi au gestionnaire de fichiers Thunar -d'ouvrir une fenêtre de gestion des fichier « en mode root », si -l'utilisateur s'authentifie avec le mot de passe administrateur via -l'interface graphique polkit standard. « Ajouter MATE » signifie que -@code{polkit} et @code{dbus} sont étendue de la bonne manière, ce qui permet -à MATE d'opérer avec des privilèges plus élevés sur un nombre limité -d'interface systèmes spécialisées. « Ajouter ENLIGHTENMENT » signifie que -@code{dbus} est étendu comme il faut et que plusieurs binaires -d'Enlightenment récupèrent le bit setuid, ce qui permet au verrouilleur -d'écran d'Enlightenment et à d'autres fonctionnalités de fonctionner -correctement. +@code{gnome-desktop-service-type} ajoute le métapaquet GNOME au profil du +système. De même, ajouter le service Xfce ajoute non seulement le +métapaquet @code{xfce} au profil système, mais il permet aussi au +gestionnaire de fichiers Thunar d'ouvrir une fenêtre de gestion des fichier +« en mode root », si l'utilisateur s'authentifie avec le mot de passe +administrateur via l'interface graphique polkit standard. « Ajouter MATE » +signifie que @code{polkit} et @code{dbus} sont étendue de la bonne manière, +ce qui permet à MATE d'opérer avec des privilèges plus élevés sur un nombre +limité d'interface systèmes spécialisées. En plus, ajouter un service de +type @code{mate-desktop-service-type} ajoute le métapaquet MATE au profil du +système. « Ajouter Enlightenment » signifie que @code{dbus} est étendu +comme il faut et que plusieurs binaires d'Enlightenment récupèrent le bit +setuid, ce qui permet au verrouilleur d'écran d'Enlightenment et à d'autres +fonctionnalités de fonctionner correctement. Les environnement de bureau dans Guix utilisent le service d'affichage Xorg par défaut. Si vous voulez utiliser le protocol de serveur d'affichage plus -récent Wayland, vous devez utiliser @code{sddm-service} à la place de -@code{slim-service} comme gestionnaire de connexion graphique. Vous devriez -ensuite sélectionner la session « GNOME (Wayland) » dans SDDM. Autrement, -vous pouvez essayer de démarrer GNOME sur Wayland manuellement depuis un TTY -avec la commande @command{XDG_SESSION_TYPE=wayland exec dbus-run-session +récent Wayland, vous devez utiliser @code{sddm-service} à la place de GDM +comme gestionnaire de connexion graphique. Vous devriez ensuite +sélectionner la session « GNOME (Wayland) » dans SDDM. Autrement, vous +pouvez essayer de démarrer GNOME sur Wayland manuellement depuis un TTY avec +la commande @command{XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session}. Actuellement seul GNOME support Wayland. -@deffn {Procédure Scheme} gnome-desktop-service -Renvoie un service qui ajoute le paquet @code{gnome} au profil système et -étend polkit avec des actions de @code{gnome-settings-daemon}. -@end deffn +@defvr {Variable Scheme} gnome-desktop-service-type +C'est le type de service qui ajoute l'environnement de bureau +@uref{https://www.gnome.org, GNOME}. Sa valeur est un objet +@code{gnome-desktop-configuration} (voir plus bas). -@deffn {Procédure Scheme} xfce-desktop-service -Renvoie un service qui ajoute le paquet @code{xfce} au profil du système et -étend polkit avec la capacité pour @code{thunar} de manipuler le système de -fichier en tant que root depuis une session utilisateur, après que -l'utilisateur s'est authentifié avec le mot de passe administrateur. -@end deffn +Ce service ajoute le paquet @code{gnome} au profil du système et étend +polkit avec les actions de @code{gnome-settings-daemon}. +@end defvr + +@deftp {Type de données} gnome-desktop-configuration +Enregistrement de la configuration de l'environnement de bureau GNOME. + +@table @asis +@item @code{gnome} (par défaut : @code{gnome}) +Le paquet GNOME à utiliser. +@end table +@end deftp + +@defvr {Variable Scheme} xfce-desktop-service-type +C'est le type de service qui lance l'environnement de bureau @uref{Xfce, +https://xfce.org/}. Sa valeur est un objet +@code{xfce-desktop-configuration} (voir plus bas). + +Ce service ajoute le paquet @code{xfce} au profil du système et étend polkit +avec la possibilité pour @code{thunar} de manipuler le système de fichier en +root depuis une session utilisateur, après que l'utilisateur s'authentifie +avec le mot de passe administrateur. +@end defvr + +@deftp {Type de données} xfce-desktop-configuration +Enregistrement de la configuration de l'environnement de bureau Xfce. -@deffn {Procédure Scheme} mate-desktop-service -Renvoie un service qui ajoute le paquet @code{mate} au profil du système et -étend polkit avec les actions de @code{mate-settings-daemon}. +@table @asis +@item @code{xfce} (par défaut : @code{xfce}) +Le paquet Xfce à utiliser. +@end table +@end deftp + +@deffn {Variable Scheme} mate-desktop-service-type +C'est le type de service qui lance @uref{https://mate-desktop.org/, +l'environnement de bureau MATE}. Sa valeur est un objet +@code{mate-desktop-configuration} (voir plus bas). + +Ce service ajoute le paquet @code{mate} au profil du système, et étend +polkit avec les actions de @code{mate-settings-daemon}. @end deffn -@deffn {Procédure Scheme} enlightenment-desktop-service-type +@deftp {Type de données} mate-desktop-configuration +Enregistrement de configuration pour l'environnement de bureau MATE. + +@table @asis +@item @code{mate} (par défaut : @code{mate}) +Le paquet MATE à utiliser. +@end table +@end deftp + +@deffn {Variable Scheme} enlightenment-desktop-service-type Renvoie un service qui ajoute le paquet @code{enlightenment} et étend dbus avec les actions de @code{efl} @end deffn @@ -14611,20 +15183,20 @@ Le paquet enlightenment à utiliser. @end table @end deftp -Comme les services de bureau GNOME, XFCE et MATE récupèrent tant de paquet, +Comme les services de bureau GNOME, Xfce et MATE récupèrent tant de paquet, la variable @code{%desktop-services} par défaut n'inclut aucun d'entre eux. -Pour ajouter GNOME, XFCE ou MATE, utilisez @code{cons} pour les ajouter à +Pour ajouter GNOME, Xfce ou MATE, utilisez @code{cons} pour les ajouter à @code{%desktop-services} dans le champ @code{services} de votre -@code{operating-system}. +@code{operating-system} : @example (use-modules (gnu)) (use-service-modules desktop) (operating-system ... - ;; cons* ajoute les élément à la liste donnée en dernier argument - (services (cons* (gnome-desktop-service) - (xfce-desktop-service) + ;; cons* ajoute des éléments à la liste donnée en dernier argument. + (services (cons* (service gnome-desktop-service-type) + (service xfce-desktop-service) %desktop-services)) ...) @end example @@ -14748,66 +15320,68 @@ exemple, un utilisateur normal peut obtenir le droit de mettre le système en veille si l'utilisateur est connecté localement. @end deffn -@defvr {Scheme Variable} upower-service-type -Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, -a system-wide monitor for power consumption and battery levels, with the -given configuration settings. +@defvr {Variable Scheme} upower-service-type +Service qui lance @uref{http://upower.freedesktop.org/, @command{upowerd}}, +un moniteur système de consommation d'énergie et de niveau de batterie, avec +les paramètres de configuration donnés. -It implements the @code{org.freedesktop.UPower} D-Bus interface, and is -notably used by GNOME. +Il implémente l'interface D-Bus @code{org.freedesktop.UPower} et est +notamment utilisé par GNOME. @end defvr -@deftp {Data Type} upower-configuration -Data type representation the configuration for UPower. +@deftp {Type de données} upower-configuration +Type de données représentant la configuration de UPower. @table @asis -@item @code{upower} (default: @var{upower}) -Package to use for @code{upower}. +@item @code{upower} (par défaut : @var{upower}) +Paquet à utiliser pour @code{upower}. -@item @code{watts-up-pro?} (default: @code{#f}) -Enable the Watts Up Pro device. +@item @code{watts-up-pro?} (par défaut : @code{#f}) +Active le périphérique Watts Up Pro. -@item @code{poll-batteries?} (default: @code{#t}) -Enable polling the kernel for battery level changes. +@item @code{poll-batteries?} (par défaut : @code{#t}) +Active les requêtes au noyau pour les changements de niveau de batterie. -@item @code{ignore-lid?} (default: @code{#f}) -Ignore the lid state, this can be useful if it's incorrect on a device. +@item @code{ignore-lid?} (par défaut : @code{#f}) +Ignore l'état de l'écran, ce qui peut être utile s'il est incorrect sur un +appareil. -@item @code{use-percentage-for-policy?} (default: @code{#f}) -Whether battery percentage based policy should be used. The default is to -use the time left, change to @code{#t} to use the percentage. +@item @code{use-percentage-for-policy?} (par défaut : @code{#f}) +Indique si la politique de batterie basée sur le pourcentage devrait être +utilisée. La valeur par défaut est d'utiliser la durée restante, changez en +@code{#t} pour utiliser les pourcentages. -@item @code{percentage-low} (default: @code{10}) -When @code{use-percentage-for-policy?} is @code{#t}, this sets the -percentage at which the battery is considered low. +@item @code{percentage-low} (par défaut : @code{10}) +Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel +niveau la batterie est considérée comme faible. -@item @code{percentage-critical} (default: @code{3}) -When @code{use-percentage-for-policy?} is @code{#t}, this sets the -percentage at which the battery is considered critical. +@item @code{percentage-critical} (par défaut : @code{3}) +Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel +niveau la batterie est considérée comme critique. -@item @code{percentage-action} (default: @code{2}) -When @code{use-percentage-for-policy?} is @code{#t}, this sets the -percentage at which action will be taken. +@item @code{percentage-action} (par défaut : @code{2}) +Lorsque @code{use-percentage-for-policy?} est @code{#t}, cela indique à quel +niveau l'action sera prise. -@item @code{time-low} (default: @code{1200}) -When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining -in seconds at which the battery is considered low. +@item @code{time-low} (par défaut : @code{1200}) +Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à +quelle durée restante en secondes la batterie est considérée comme faible. -@item @code{time-critical} (default: @code{300}) -When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining -in seconds at which the battery is considered critical. +@item @code{time-critical} (par défaut : @code{300}) +Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à +quelle durée restante en secondes la batterie est considérée comme critique. -@item @code{time-action} (default: @code{120}) -When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining -in seconds at which action will be taken. +@item @code{time-action} (par défaut : @code{120}) +Lorsque @code{use-percentage-for-policy?} est @code{#f}, cela indique à +quelle durée restante en secondes l'action sera prise. -@item @code{critical-power-action} (default: @code{'hybrid-sleep}) -The action taken when @code{percentage-action} or @code{time-action} is -reached (depending on the configuration of +@item @code{critical-power-action} (par défaut : @code{'hybrid-sleep}) +L'action à prendre lorsque @code{percentage-action} ou @code{time-action} +est atteint (en fonction de la configuration de @code{use-percentage-for-policy?}). -Possible values are: +Les valeurs possibles sont : @itemize @bullet @item @@ -14852,7 +15426,7 @@ liste d'utilisateurs vide indique que tous les utilisateurs sont autorisés. @end deffn @defvr {Variable Scheme} %standard-geoclue-applications -la liste standard de configuration des application GeoClue connues, qui +La liste standard de configuration des application GeoClue connues, qui permet à l'utilitaire date-and-time de GNOME de demander l'emplacement actuel pour initialiser le fuseau horaire et aux navigateurs web IceCat et Epiphany de demander les informations de localisation. IceCat et Epiphany @@ -14978,9 +15552,10 @@ détails. Le module @code{(gnu services databases)} fournit les services suivants. @deffn {Procédure Scheme} postgresql-service [#:postgresql postgresql] @ - [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port -5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service -that runs @var{postgresql}, the PostgreSQL database server. + [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ +[#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] +Renvoie un service qui lance @var{postgresql}, le service de bases de +données PostgreSQL. Le démon PostgreSQL charge sa configuration à l'exécution depuis @var{config-file}, crée une grappe de bases de données avec @var{locale} @@ -14988,10 +15563,11 @@ comme paramètre de régionalisation par défaut, stockée dans @var{data-directory}. Il écoute ensuite sur @var{port}. @cindex postgresql extension-packages -Additional extensions are loaded from packages listed in -@var{extension-packages}. Extensions are available at runtime. For -instance, to create a geographic database using the @code{postgis} -extension, a user can configure the postgresql-service as in this example: +Des extensions supplémentaires peuvent être chargées à partir de paquets +listés dans @var{extension-packages}. Les extensions sont disponibles à +l'exécution. Par exemple, pour créer une base de données géographique avec +l'extension @code{postgis}, on peut configurer postgresql-service de cette +manière : @cindex postgis @example @@ -14999,8 +15575,8 @@ extension, a user can configure the postgresql-service as in this example: (operating-system ... - ;; postgresql is required to run `psql' but postgis is not required for - ;; proper operation. + ;; postgresql est requis pour lancer `psql' mais postgis n'est pas requis pour son + ;; bon fonctionnement. (packages (cons* postgresql %base-packages)) (services (cons* @@ -15008,8 +15584,8 @@ extension, a user can configure the postgresql-service as in this example: %base-services))) @end example -Then the extension becomes visible and you can initialise an empty -geographic database in this way: +Ensuite l'extension devient visible et vous pouvez initialiser une base de +données géographique de cette manière : @example psql -U postgres @@ -15019,9 +15595,10 @@ psql -U postgres > create extension postgis_topology; @end example -There is no need to add this field for contrib extensions such as hstore or -dblink as they are already loadable by postgresql. This field is only -required to add extensions provided by other packages. +Vous n'avez pas besoin d'ajouter ce champ pour les extensions « contrib » +comme hstore ou dblink comme elles sont déjà exploitables par postgresql. +Ce champ n'est requis que pour ajouter des extensions fournies par d'autres +paquets. @end deffn @deffn {Procédure Scheme} mysql-service [#:config (mysql-configuration)] @@ -15185,7 +15762,7 @@ système ; voir la fin pour plus de détails. Les champs de @code{dovecot-configuration} disponibles sont : @deftypevr {paramètre de @code{dovecot-configuration}} package dovecot -Le paquet dovecot +Le paquet dovecot. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} comma-separated-string-list listen @@ -15518,21 +16095,24 @@ défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list login-access-sockets -List of login access check sockets (e.g.@: tcpwrap). Defaults to @samp{()}. +Liste des sockets de vérification d'accès de connexion (p.@: ex.@: +tcpwrap). La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean verbose-proctitle? -Show more verbose process titles (in ps). Currently shows user name and IP -address. Useful for seeing who is actually using the IMAP processes (e.g.@: -shared mailboxes or if the same uid is used for multiple accounts). -Defaults to @samp{#f}. +Montre des titres de processus plus verbeux (dans ps). Actuellement, montre +le nom d'utilisateur et l'adresse IP. Utile pour voir qui utilise en +réalité les processus IMAP (p.@: ex.@: des boîtes aux lettres partagées ou +si le même uid est utilisé pour plusieurs comptes). La valeur par défaut +est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean shutdown-clients? -Should all processes be killed when Dovecot master process shuts down. -Setting this to @code{#f} means that Dovecot can be upgraded without forcing -existing client connections to close (although that could also be a problem -if the upgrade is e.g.@: due to a security fix). Defaults to @samp{#t}. +Indique si les processus devraient toujours être tués lorsque le processus +maître de Dovecot est éteint. La valeur @code{#f} signifie que Dovecot peut +être mis à jour sans forcer les connexions clientes existantes à se fermer +(bien que cela puisse être un problème si la mise à jour est un correctif de +sécurité par exemple). La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer doveadm-worker-count @@ -15553,17 +16133,19 @@ paires clef=valeur pour toujours spécifier ce paramètre. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean disable-plaintext-auth? -Disable LOGIN command and all other plaintext authentications unless SSL/TLS -is used (LOGINDISABLED capability). Note that if the remote IP matches the -local IP (i.e.@: you're connecting from the same computer), the connection -is considered secure and plaintext authentication is allowed. See also -ssl=required setting. Defaults to @samp{#t}. +Désactive la commande LOGIN et toutes les autres authentifications en texte +clair à moins que SSL/TLS ne soit utilisé (capacité LOGINDISABLED). +Remarquez que si l'IP distante correspond à l'IP locale (c.-à-d.@: que vous +vous connectez depuis le même ordinateur), la connexion est considérée comme +sécurisée et l'authentification en texte clair est permise. Voir aussi le +paramètre ssl=required. La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer auth-cache-size -Authentication cache size (e.g.@: @samp{#e10e6}). 0 means it's disabled. -Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for -caching to be used. Defaults to @samp{0}. +Taille du cache d'authentification (p.@: ex.@: @samp{#e10e6}). 0 signifie +qu'il est désactivé. Remarquez que bsdauth, PAM et vpopmail ont besoin que +@samp{cache-key} soit indiqué pour que le cache soit utilisé. La valeur par +défaut est @samp{0}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string auth-cache-ttl @@ -15615,20 +16197,22 @@ exemple @samp{#@@/@@} signifie que @samp{#} et @samp{/} sont traduits en @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string auth-username-format -Username formatting before it's looked up from databases. You can use the -standard variables here, e.g.@: %Lu would lowercase the username, %n would -drop away the domain if it was given, or @samp{%n-AT-%d} would change the -@samp{@@} into @samp{-AT-}. This translation is done after -@samp{auth-username-translation} changes. Defaults to @samp{"%Lu"}. +Format des noms d'utilisateur avant qu'ils ne soient cherchés en base. Vous +pouvez utiliser les variables standard ici, p.@: ex.@: %Lu est le nom +d'utilisateur en minuscule, %n enlève le domaine s'il est donné ou +@samp{%n-AT-%d} changerait le @samp{@@} en @samp{-AT-}. Cette traduction +est faite après les changements de @samp{auth-username-translation}. La +valeur par défaut est @samp{"%Lu"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string auth-master-user-separator -If you want to allow master users to log in by specifying the master -username within the normal username string (i.e.@: not using SASL -mechanism's support for it), you can specify the separator character here. -The format is then <username><separator><master username>. UW-IMAP uses -@samp{*} as the separator, so that could be a good choice. Defaults to -@samp{""}. +Si vous voulez permettre aux utilisateurs maîtres de se connecter en +spécifiant le nom d'utilisateur maître dans la chaîne de nom d'utilisateur +normal (c.-à-d.@: sans utiliser le support du mécanisme SASL pour cela), +vous pouvez spécifier le caractère de séparation ici. Le format est ensuite +<nom d'utilisateur><séparateur><nom d'utilisateur maître>. UW-IMAP utilise +@samp{*} comme séparateur, donc ça pourrait être un bon choix. La valeur +par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string auth-anonymous-username @@ -15637,9 +16221,10 @@ mécanisme SASL ANONYMOUS. La valeur par défaut est @samp{"anonymous"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer auth-worker-max-count -Maximum number of dovecot-auth worker processes. They're used to execute -blocking passdb and userdb queries (e.g.@: MySQL and PAM). They're -automatically created and destroyed as needed. Defaults to @samp{30}. +Nombre maximum de processus de travail dovecot-auth. Ils sont utilisés pour +exécuter des requêtes passdb et userdb bloquantes (p.@: ex.@: MySQL et +PAM). Ils sont créés automatiquement et détruits au besoin. La valeur par +défaut est @samp{30}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string auth-gssapi-hostname @@ -15748,11 +16333,13 @@ raison de leur échec. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-verbose-passwords? -In case of password mismatches, log the attempted password. Valid values -are no, plain and sha1. sha1 can be useful for detecting brute force -password attempts vs. user simply trying the same password over and over -again. You can also truncate the value to n chars by appending ":n" (e.g.@: -sha1:6). Defaults to @samp{#f}. +Dans le cas où le mot de passe n'était pas correct, indique s'il faut +enregistrer le mauvais mot de passe. Les valeurs valides sont « no », « +plain » et « sha1 ». Il peut être utile d'indiquer « sha1 » pour +discriminer des attaques par force brute d'utilisateurs qui réessayent +encore et encore le même mot de passe. Vous pouvez aussi tronquer la valeur +à n caractères en ajoutant « :n » (p.@: ex.@: « sha1:6 »). La valeur par +défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-debug? @@ -15808,7 +16395,7 @@ Format à utiliser pour enregistrer les livraisons de courriels. Vous pouvez utiliser ces variables : @table @code @item %$ -Delivery status message (e.g.@: @samp{saved to INBOX}) +Message de statut de la livraison (p.@: ex.@: @samp{saved to INBOX}) @item %m Message-ID @item %s @@ -15830,10 +16417,11 @@ automatiquement. Cela ne fonctionnera pas si l'utilisateur n'a aucun courriel, donc il vaut mieux indiquer explicitement le bon emplacement à Dovecot. -If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) -isn't enough. You'll also need to tell Dovecot where the other mailboxes -are kept. This is called the "root mail directory", and it must be the -first path given in the @samp{mail-location} setting. +Si vous utilisez mbox, il ne suffit pas de donner le chemin vers le fichier +INBOX (p.@: ex.@: /var/mail/%u). Vous devrez aussi dire à Dovecot où les +autres boîtes aux lettres se trouvent. Cela s'appelle le « répertoire +racine des courriels » et il doit être le premier chemin donné à l'option +@samp{mail-location}. Il y a quelques variables spéciales que vous pouvez utiliser : @@ -15842,7 +16430,7 @@ Il y a quelques variables spéciales que vous pouvez utiliser : nom d'utilisateur @item %n la partie « utilisateur » dans « utilisateur@@domaine », comme %u s'il n'y a -pas de domaine. +pas de domaine @item %d la partie « domaine » dans « utilisateur@@domaine », vide s'il n'y a pas de domaine @@ -15879,19 +16467,22 @@ initiale et quand le verrouillage échoie. Typiquement, vous pouvez utiliser @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string mail-access-groups -Grant access to these supplementary groups for mail processes. Typically -these are used to set up access to shared mailboxes. Note that it may be -dangerous to set these if users can create symlinks (e.g.@: if "mail" group -is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' -mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading -it). Defaults to @samp{""}. +Donne l'accès à ces groupes supplémentaires aux processus de courriel. Ils +sont typiquement utilisés pour mettre en place l'accès à des boîtes aux +lettres partagées. Remarquez qu'il peut être dangereux d'utiliser cette +option si l'utilisateur peut créer des liens symboliques (p.@: ex.@: si le +groupe « mail » est utilisé ici, « ln -s /var/mail ~/mail/var » peut +permettre à un utilisateur de supprimer les boîtes aux lettres des autres, +ou « ln -s /secret/shared/box ~/mail/mybox » lui permettrait de la lire). +La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean mail-full-filesystem-access? -Allow full file system access to clients. There's no access checks other -than what the operating system does for the active UID/GID. It works with -both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: -/path/ or ~user/. Defaults to @samp{#f}. +Permet l'accès complet au système de fichiers pour les clients. Il n'y a +pas de vérification d'accès autres que ce que le système d'exploitation fait +avec les UID/GID. Cela fonctionne aussi bien avec maildir qu'avec mbox, ce +qui vous permet de préfixer les noms des boîtes aux lettres avec p.@: ex.@: +/chemin/ ou ~utilisateur/. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean mmap-disable? @@ -15912,7 +16503,7 @@ Quand utiliser les appels à fsync() ou fdatasync() : @item optimized Lorsque cela est nécessaire pour éviter de perdre des données importantes @item always -Useful with e.g.@: NFS when write()s are delayed +Utile lorsque par exemple les écritures NFS sont retardées @item never Ne l'utilisez pas (ça a de meilleures performances, mais les crashs font perdre toutes les données). @@ -15980,23 +16571,28 @@ lors de la création de nouveaux mots-clefs. La valeur par défaut est @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} colon-separated-file-name-list valid-chroot-dirs -List of directories under which chrooting is allowed for mail processes -(i.e.@: /var/mail will allow chrooting to /var/mail/foo/bar too). This -setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot -settings. If this setting is empty, "/./" in home dirs are ignored. -WARNING: Never add directories here which local users can modify, that may -lead to root exploit. Usually this should be done only if you don't allow -shell access for users. <doc/wiki/Chrooting.txt>. Defaults to @samp{()}. +Liste des répertoires sous lesquels le chroot est permis pour les processus +de traitement des courriels (c.-à-d.@: /var/mail permettra aussi de se +chrooter dans /var/mail/foo/bar). Ce paramètre n'affecte pas +@samp{login-chroot} @samp{mail-chroot} ou les paramètres de chroot de +l'authentification. Si ce paramètre est vide, « /./ » dans les répertoires +personnels sont ignorés. ATTENTION : n'ajoutez jamais de répertoires ici +que les utilisateurs locaux peuvent modifier, puisque ça pourrait permettre +d'escalader les privilèges. Normalement vous ne devriez le faire que si les +utilisateurs n'ont pas d'accès shell. <doc/wiki/Chrooting.txt>. La valeur +par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string mail-chroot -Default chroot directory for mail processes. This can be overridden for -specific users in user database by giving /./ in user's home directory -(e.g.@: /home/./user chroots into /home). Note that usually there is no -real need to do chrooting, Dovecot doesn't allow users to access files -outside their mail directory anyway. If your home directories are prefixed -with the chroot directory, append "/."@: to @samp{mail-chroot}. -<doc/wiki/Chrooting.txt>. Defaults to @samp{""}. +Répertoire chroot par défaut pour les processus de traitement des +courriels. Cela peut être modifié pour des utilisateurs particuliers dans +la base de donnée en donnant /./ dans le répertoire personnel (p.@: ex.@: +/home/./utilisateur permet de se chrooter dans /home). Remarquez qu'il n'y +a d'habitude pas besoin de se chrooter. Dovecot ne permet pas aux +utilisateurs d'accéder aux fichiers en dehors de leur répertoire de +courriels de toute façon. Si vos répertoires personnels sont préfixés par +le répertoire de chroot, ajoutez « /. » à @samp{mail-chroot}. +<doc/wiki/Chrooting.txt>. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} file-name auth-socket-path @@ -16011,9 +16607,9 @@ Répertoire où trouver les greffons. La valeur par défaut est @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list mail-plugins -List of plugins to load for all services. Plugins specific to IMAP, LDA, -etc.@: are added to this list in their own .conf files. Defaults to -@samp{()}. +Liste des greffons à charger pour tous les services. Les greffons +spécifiques à IMAP, LDA, etc sont ajoutés à cette liste dans leur propre +fichiers .conf. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mail-cache-min-mail-count @@ -16138,9 +16734,9 @@ valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mbox-min-index-size -If mbox size is smaller than this (e.g.@: 100k), don't write index files. -If an index file already exists it's still read, just not updated. Defaults -to @samp{0}. +Si la taille du fichier mbox est plus petite que cela (p.@: ex.@: 100k), ne +pas écrire de fichier d'index. Si un fichier d'index existe déjà il est +toujours lu, mais pas mis à jour. La valeur par défaut est @samp{0}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mdbox-rotate-size @@ -16190,17 +16786,18 @@ déduplication du système de fichier) @item sis posix SiS avec comparaison bit-à-bit immédiate pendant la sauvegarde @item sis-queue posix -SiS avec déduplication et comparaison différées +SiS avec déduplication et comparaison différées. @end table La valeur par défaut est @samp{"sis posix"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string mail-attachment-hash -Hash format to use in attachment filenames. You can add any text and -variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, -@code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}. Variables can be -truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits. -Defaults to @samp{"%@{sha1@}"}. +Format de hash à utiliser dans les noms de fichiers des pièces-jointes. +Vous pouvez ajouter n'importe quel texte ou variable : @code{%@{md4@}}, +@code{%@{md5@}}, @code{%@{sha1@}}, @code{%@{sha256@}}, @code{%@{sha512@}}, +@code{%@{size@}}. Les variables peuvent être tronquées, p.@: ex.@: +@code{%@{sha256:80@}} renvoie seulement les 80 premiers bits. La valeur par +défaut est @samp{"%@{sha1@}"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer default-process-limit @@ -16257,10 +16854,11 @@ ce paramètre dans un autre fichier. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string ssl-ca -PEM encoded trusted certificate authority. Set this only if you intend to -use @samp{ssl-verify-client-cert? #t}. The file should contain the CA -certificate(s) followed by the matching CRL(s). (e.g.@: @samp{ssl-ca -</etc/ssl/certs/ca.pem}). Defaults to @samp{""}. +Certificat de l'autorité de confiance encodé en PEM. Indiquez cette valeur +si vous voulez utiliser @samp{ssl-verify-client-cert? #t}. Le fichier +devrait contenir les certificats de CA suivi par les CRL correspondants +(p.@: ex.@: @samp{ssl-ca </etc/ssl/certs/ca.pem}). La valeur par défaut est +@samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean ssl-require-crl? @@ -16302,9 +16900,9 @@ domaine du destinataire. La valeur par défaut est @samp{"postmaster@@%d"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string hostname -Hostname to use in various parts of sent mails (e.g.@: in Message-Id) and -in LMTP replies. Default is the system's real hostname@@domain. Defaults -to @samp{""}. +Nom d'hôte à utiliser dans diverses parties des courriels envoyés (p.@: +ex.@: dans Message-Id) et dans les réponses LMTP. La valeur par défaut est +le nomdhôte@@domaine réel du système. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} boolean quota-full-tempfail? @@ -16392,9 +16990,9 @@ body_count=%@{fetch_body_count@} body_bytes=%@{fetch_body_bytes@}"}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string imap-capability -Override the IMAP CAPABILITY response. If the value begins with '+', add -the given capabilities on top of the defaults (e.g.@: +XFOO XBAR). Defaults -to @samp{""}. +Remplace la réponse CAPABILITY d'IMAP. Si la valeur commence par « + », +ajoute les capacités données en haut des valeur par défaut (p.@: ex.@: +XFOO +XBAR). La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{dovecot-configuration}} string imap-idle-notify-interval @@ -16433,9 +17031,10 @@ Cette option fait que dovecot ignore le @samp{/} supplémentaire au lieu de le traiter comme un nom de boîte aux lettres invalide. @item tb-lsub-flags -Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox). This -makes Thunderbird realize they aren't selectable and show them greyed out, -instead of only later giving "not selectable" popup error. +Montre les drapeaux \Noselect pour les réponses LSUB avec LAYOUT=fs (p.@: +ex.@: mbox). Cela fait que Thunderbird réalise qu'ils ne sont pas +sélectionnables et les montre en grisé, au lieu de montrer un popup « non +sélectionnable » après coup. @end table La valeur par défaut est @samp{()}. @end deftypevr @@ -16446,11 +17045,11 @@ autorise tous. La valeur par défaut est @samp{""}. @end deftypevr -Whew! Lots of configuration options. The nice thing about it though is that -Guix has a complete interface to Dovecot's configuration language. This -allows not only a nice way to declare configurations, but also offers -reflective capabilities as well: users can write code to inspect and -transform configurations from within Scheme. +Ouf ! Tant d'options de configuration. La bonne nouvelle, c'est que Guix a +une interface complète avec le langage de configuration de Dovecot. Cela +permet non seulement de déclarer la configuration de manière agréable, mais +aussi d'offrir des capacités de réflexion : les utilisateurs peuvent écrire +du code pour inspecter et transformer les configuration depuis Scheme. Cependant, vous pourriez avoir un fichier @code{dovecot.conf} déjà tout prêt. Dans ce cas, vous pouvez passer un objet @@ -16461,7 +17060,7 @@ n'a pas les capacités de réflexions. Les champs de @code{opaque-dovecot-configuration} disponibles sont : @deftypevr {paramètre de @code{opaque-dovecot-configuration}} package dovecot -Le paquet dovecot +Le paquet dovecot. @end deftypevr @deftypevr {paramètre de @code{opaque-dovecot-configuration}} string string @@ -16576,6 +17175,35 @@ système. Dans l'exemple au-dessus, il n'y a pas besoin d'une entrée @code{postmaster} à @code{bob} (qui ensuite délivrerait le courriel à @code{bob@@example.com} et @code{bob@@example2.com}). +@subsubheading Démon IMAP4 GNU Mailutils +@cindex Démon IMAP4 GNU Mailutils + +@deffn {Variable Scheme} imap4d-service-type +C'est le type du démon IMAP4 GNU Mailutils, dont la valeur devrait être un +objet @code{imap4d-configuration} comme dans cet exemple : + +@example +(service imap4d-service-type + (imap4d-configuration + (config-file (local-file "imap4d.conf")))) +@end example +@end deffn + +@deftp {Type de données} imap4d-configuration +Type de données représentant la configuration de @command{imap4d}. + +@table @asis +@item @code{package} (par défaut : @code{mailutils}) +Le paquet qui fournit @command{imap4d}. + +@item @code{config-file} (par défaut : @code{%default-imap4d-config-file}) +Objet simili-fichier du fichier de configuration à utiliser. Par défaut, la +configuration fera écouter sur le port TCP 143 sur @code{localhost}. +@xref{Conf-imap4d,,, mailutils, GNU Mailutils Manual}, pour les détails. + +@end table +@end deftp + @node Services de messagerie @subsection Services de messagerie @@ -16848,9 +17476,10 @@ d'information sur l'utilisation du moteur hashed. Voir aussi @end deftypevr @deftypevr {paramètre de @code{prosody-configuration}} maybe-string log -Set logging options. Advanced logging configuration is not yet supported by -the Guix Prosody Service. See @url{https://prosody.im/doc/logging}. -Defaults to @samp{"*syslog"}. +Indique les options de journalisation. La configuration avancée des +journaux n'est pas encore supportée par le service Prosody. Voir +@url{https://prosody.im/doc/logging}. La valeur par défaut est +@samp{"*syslog"}. @end deftypevr @deftypevr {paramètre de @code{prosody-configuration}} file-name pidfile @@ -16955,12 +17584,12 @@ par défaut est @samp{"Prosody Chatrooms"}. @end deftypevr @deftypevr {paramètre de @code{mod-muc-configuration}} string-or-boolean restrict-room-creation -If @samp{#t}, this will only allow admins to create new chatrooms. -Otherwise anyone can create a room. The value @samp{"local"} restricts room -creation to users on the service's parent domain. E.g.@: -@samp{user@@example.com} can create rooms on @samp{rooms.example.com}. The -value @samp{"admin"} restricts to service administrators only. Defaults to -@samp{#f}. +Si la valeur est @samp{#t}, cela permettra uniquement aux admins de créer de +nouveaux salons. Sinon n'importe qui peut créer un salon. La valeur +@samp{"local"} restreint la création aux utilisateurs du domaine parent du +service. P.@: ex.@: @samp{user@@example.com} peut créer des salons sur +@samp{rooms.example.com}. La valeur @samp{"admin"} restreint ce service aux +administrateurs. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{mod-muc-configuration}} non-negative-integer max-history-messages @@ -17085,32 +17714,35 @@ BitlBee. @end table @end deftp -@subsubheading Quassel Service +@subsubheading Service Quassel @cindex IRC (Internet Relay Chat) -@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning -that one or more clients can attach to and detach from the central core. - -@defvr {Scheme Variable} quassel-service-type -This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC -backend daemon. Its value is a @code{quassel-configuration} (see below). +@url{https://quassel-irc.org/,Quassel} est un client IRC distribué, ce qui +signifie qu'un client ou plus peuvent s'attacher et se détacher du cœur +central. + +@defvr {Variable Scheme} quassel-service-type +C'est le type de service pour le démon IRC +@url{https://quassel-irc.org/,Quassel}. Sa valeur est un +@code{quassel-configuration} (voir plus bas). @end defvr -@deftp {Data Type} quassel-configuration -This is the configuration for Quassel, with the following fields: +@deftp {Type de données} quassel-configuration +C'est la configuration de Quassel, avec les champs suivants : @table @asis -@item @code{quassel} (default: @code{quassel}) -The Quassel package to use. - -@item @code{interface} (default: @code{"::,0.0.0.0"}) -@item @code{port} (default: @code{4242}) -Listen on the network interface(s) corresponding to the IPv4 or IPv6 -interfaces specified in the comma delimited @var{interface}, on @var{port}. - -@item @code{loglevel} (default: @code{"Info"}) -The level of logging desired. Accepted values are Debug, Info, Warning and -Error. +@item @code{quassel} (par défaut : @code{quassel}) +Le paquet Quassel à utiliser. + +@item @code{interface} (par défaut : @code{"::,0.0.0.0"}) +@item @code{port} (par défaut : @code{4242}) +Écoute sur les interfaces réseau correspondant à l'adresse IPv4 ou IPv6 des +interfaces spécifiées dans @var{interface}, une liste de chaînes délimitées +par des virgules, sur @var{port}. + +@item @code{loglevel} (par défaut : @code{"info"}) +Le niveau de journalisation souhaité. Les valeurs acceptées sont « Debug », +« Info », « Warning » et « Error ». @end table @end deftp @@ -17131,8 +17763,8 @@ configuration : (service murmur-service-type (murmur-configuration (welcome-text - "Welcome to this Mumble server running on Guix!") - (cert-required? #t) ;disallow text password logins + "Bienvenue sur ce serveur Mumble qui tourne sur Guix !") + (cert-required? #t) ;désactive les connections par mot de passe (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem") (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem"))) @end example @@ -17526,93 +18158,93 @@ Lie l'interface web sur l'adresse spécifiée. @end table @end deftp -@subsubheading Zabbix server +@subsubheading Server zabbix @cindex zabbix zabbix-server -Zabbix provides monitoring metrics, among others network utilization, CPU -load and disk space consumption: +Zabbix fournit des métriques de suivi entre autres de l'utilisation du +réseau, de la charge CPU et de l'espace disque : @itemize -@item High performance, high capacity (able to monitor hundreds of thousands of devices). -@item Auto-discovery of servers and network devices and interfaces. -@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others. -@item Distributed monitoring with centralized web administration. -@item Native high performance agents. -@item SLA, and ITIL KPI metrics on reporting. -@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards. -@item Remote command execution through Zabbix proxies. +@item Haute performance, haute capacité (il est capable de surveiller des centaines de milliers d'appareils). +@item Découverte automatique des serveurs, des appareils et leurs interfaces réseaux. +@item Découverte bas-niveau, qui permet de commencer automatiquement à surveiller de nouveaux éléments, des systèmes de fichiers ou des interfaces réseaux entre autres. +@item Surveillance distribuée avec une administration web centralisée. +@item Agents natifs haute-performance. +@item Métriques SLA et ITIL KPI dans les rapports. +@item Vue haut-niveau (businness) des ressources surveillées à travers des écrans de consoles visuelles définie par l'utilisateur et des panneaux de commande. +@item Exécution à distance à travers les mandataires Zabbix. @end itemize @c %start of fragment -Available @code{zabbix-server-configuration} fields are: +Les champs de @code{zabbix-server-configuration} disponibles sont : -@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server -The zabbix-server package. +@deftypevr {paramètre de @code{zabbix-server-configuration}} package zabbix-server +Le paquet zabbix-server. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string user -User who will run the Zabbix server. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string user +Utilisateur qui lancera le serveur Zabbix. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} group group -Group who will run the Zabbix server. +@deftypevr {paramètre de @code{zabbix-server-configuration}} group group +Groupe qui lancera le serveur Zabbix. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string db-host -Database host name. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string db-host +Le nom d'hôte de la base de données. -Defaults to @samp{"127.0.0.1"}. +La valeur par défaut est @samp{"127.0.0.1"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string db-name -Database name. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string db-name +Nom de la base de données. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string db-user -Database user. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string db-user +Utilisateur de la base de données. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string db-password -Database password. Please, use @code{include-files} with -@code{DBPassword=SECRET} inside a specified file instead. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string db-password +Mot de passe de la base de données. Utilisez plutôt @code{include-files} +avec @code{DBPassword=SECRET} dans le fichier spécifié à la place. La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} number db-port -Database port. +@deftypevr {paramètre de @code{zabbix-server-configuration}} number db-port +Port de la base de données. -Defaults to @samp{5432}. +La valeur par défaut est @samp{5432}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string log-type -Specifies where log messages are written to: +@deftypevr {paramètre de @code{zabbix-server-configuration}} string log-type +Spécifie où les messages de journalisation seront écrits : @itemize @bullet @item @code{system} - syslog. @item -@code{file} - file specified with @code{log-file} parameter. +@code{file} - fichier spécifié par le paramètre @code{log-file}. @item -@code{console} - standard output. +@code{console} - sortie standard. @end itemize @@ -17620,45 +18252,47 @@ La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string log-file -Log file name for @code{log-type} @code{file} parameter. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string log-file +Nom du fichier de journal lorsque le paramètre @code{log-type} vaut +@code{file}. -Defaults to @samp{"/var/log/zabbix/server.log"}. +La valeur par défaut est @samp{"/var/log/zabbix/server.log"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file -Name of PID file. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string pid-file +Nom du fichier de PID. -Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}. +La valeur par défaut est @samp{"/var/run/zabbix/zabbix_server.pid"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location -The location of certificate authority (CA) files for SSL server certificate -verification. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string ssl-ca-location +Emplacement des fichiers d'autorités de certification (AC) pour la +vérification des certificats SSL du serveur. -Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}. +La valeur par défaut est @samp{"/etc/ssl/certs/ca-certificates.crt"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location -Location of SSL client certificates. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string ssl-cert-location +Emplacement des certificats SSL des clients. -Defaults to @samp{"/etc/ssl/certs"}. +La valeur par défaut est @samp{"/etc/ssl/certs"}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options -Extra options will be appended to Zabbix server configuration file. +@deftypevr {paramètre de @code{zabbix-server-configuration}} string extra-options +Options supplémentaires ajoutées à la fin du fichier de configuration du +serveur Zabbix. La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files -You may include individual files or all files in a directory in the -configuration file. +@deftypevr {paramètre de @code{zabbix-server-configuration}} include-files include-files +Vous pouvez inclure des fichiers individuels ou tous les fichiers d'un +répertoire dans le fichier de configuration. La valeur par défaut est @samp{()}. @@ -17666,54 +18300,54 @@ La valeur par défaut est @samp{()}. @c %end of fragment -@subsubheading Zabbix agent +@subsubheading Agent zabbix @cindex zabbix zabbix-agent -Zabbix agent gathers information for Zabbix server. +L'agent Zabbix récupère des informations pour le serveur Zabbix. @c %start of fragment -Available @code{zabbix-agent-configuration} fields are: +Les champs de @code{zabbix-agent-configuration} disponibles sont : -@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent -The zabbix-agent package. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} package zabbix-agent +Le paquet zabbix-agent. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string user -User who will run the Zabbix agent. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string user +Utilisateur qui lancera l'agent Zabbix. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} group group -Group who will run the Zabbix agent. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} group group +Groupe qui lancera l'agent Zabbix. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname -Unique, case sensitive hostname which is required for active checks and must -match hostname as configured on the server. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string hostname +Noms d'hôte unique et sensible à la casse requis pour les vérifications +actives et qui doit correspondre au nom d'hôte configuré sur le serveur. -Defaults to @samp{"Zabbix server"}. +La valeur par défaut est @samp{"Zabbix server"}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type -Specifies where log messages are written to: +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string log-type +Spécifie où les messages de journalisation seront écrits : @itemize @bullet @item @code{system} - syslog. @item -@code{file} - file specified with @code{log-file} parameter. +@code{file} - fichier spécifié par le paramètre @code{log-file}. @item -@code{console} - standard output. +@code{console} - sortie standard. @end itemize @@ -17721,48 +18355,51 @@ La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file -Log file name for @code{log-type} @code{file} parameter. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string log-file +Nom du fichier de journal lorsque le paramètre @code{log-type} vaut +@code{file}. -Defaults to @samp{"/var/log/zabbix/agent.log"}. +La valeur par défaut est @samp{"/var/log/zabbix/agent.log"}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file -Name of PID file. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string pid-file +Nom du fichier de PID. -Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}. +La valeur par défaut est @samp{"/var/run/zabbix/zabbix_agent.pid"}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} list server -List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix -servers and Zabbix proxies. Incoming connections will be accepted only from -the hosts listed here. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} list server +Liste d'adresses IP, éventuellement en notation CIDR ou de noms d'hôtes de +serveurs Zabbix et de mandataires Zabbix. Les connexions entrantes ne +seront acceptées que si elles viennent des hôtes listés ici. -Defaults to @samp{("127.0.0.1")}. +La valeur par défaut est @samp{("127.0.0.1")}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active -List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix -proxies for active checks. If port is not specified, default port is used. -If this parameter is not specified, active checks are disabled. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} list server-active +Liste de paires d'IP:port (ou nom d'hôte:port) de serveurs Zabbix et de +mandataires Zabbix pour les vérifications actives. Si le port n'est pas +spécifié, le port par défaut est utilisé. Si ce paramètre n'est pas +spécifié, les vérifications actives sont désactivées. -Defaults to @samp{("127.0.0.1")}. +La valeur par défaut est @samp{("127.0.0.1")}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options -Extra options will be appended to Zabbix server configuration file. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} string extra-options +Options supplémentaires ajoutées à la fin du fichier de configuration du +serveur Zabbix. La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files -You may include individual files or all files in a directory in the -configuration file. +@deftypevr {paramètre de @code{zabbix-agent-configuration}} include-files include-files +Vous pouvez inclure des fichiers individuels ou tous les fichiers d'un +répertoire dans le fichier de configuration. La valeur par défaut est @samp{()}. @@ -17770,75 +18407,75 @@ La valeur par défaut est @samp{()}. @c %end of fragment -@subsubheading Zabbix front-end +@subsubheading Interface utilisateur Zabbix @cindex zabbix zabbix-front-end -This service provides a WEB interface to Zabbix server. +Ce service fournit une interface WEB au serveur Zabbix. @c %start of fragment -Available @code{zabbix-front-end-configuration} fields are: +Les champs de @code{zabbix-front-end-configuration} disponibles sont : -@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} nginx-server-configuration-list nginx Configuration Nginx. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host -Database host name. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string db-host +Le nom d'hôte de la base de données. La valeur par défaut est @samp{"localhost"}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port -Database port. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} number db-port +Port de la base de données. -Defaults to @samp{5432}. +La valeur par défaut est @samp{5432}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name -Database name. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string db-name +Nom de la base de données. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user -Database user. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string db-user +Utilisateur de la base de données. -Defaults to @samp{"zabbix"}. +La valeur par défaut est @samp{"zabbix"}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password -Database password. Please, use @code{db-secret-file} instead. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string db-password +Mot de passe de la base de données. Utilisez plutôt @code{db-secret-file}. La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file -Secret file which will be appended to @file{zabbix.conf.php} file. This -file contains credentials for use by Zabbix front-end. You are expected to -create it manually. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string db-secret-file +Fichier de secrets qui sera ajouté au fichier @file{zabbix.conf.php}. Ce +fichier contient les paramètres d'authentification utilisés par Zabbix. On +s'attend à ce que vous le créiez manuellement. La valeur par défaut est @samp{""}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host -Zabbix server hostname. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} string zabbix-host +Nom d'hôte du serveur Zabbix. La valeur par défaut est @samp{"localhost"}. @end deftypevr -@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port -Zabbix server port. +@deftypevr {paramètre de @code{zabbix-front-end-configuration}} number zabbix-port +Port du serveur Zabbix. -Defaults to @samp{10051}. +La valeur par défaut est @samp{10051}. @end deftypevr @@ -17970,6 +18607,497 @@ devraient être tentées. Les comptes locaux avec une valeur plus petite @end deftp +@node Services LDAP +@subsection Services LDAP +@cindex LDAP +@cindex nslcd, service LDAP + +Le module @code{(gnu services authentication)} fournit le type de service +@code{nslcd-service-type}, qui peut être utilisé pour l'authentification par +LDAP. En plus de configurer le service lui-même, vous pouvez ajouter +@code{ldap} comme service de noms au Name Service Switch. @xref{Name Service Switch} pour des informations détaillées. + +Voici une déclaration de système d'exploitation simple avec une +configuration par défaut pour @code{nslcd-service-type} et une configuration +du Name Service Switch qui consulte le service de noms @code{ldap} en +dernier : + +@example +(use-service-modules authentication) +(use-modules (gnu system nss)) +... +(operating-system + ... + (services + (cons* + (service nslcd-service-type) + (service dhcp-client-service-type) + %base-services)) + (name-service-switch + (let ((services (list (name-service (name "db")) + (name-service (name "files")) + (name-service (name "ldap"))))) + (name-service-switch + (inherit %mdns-host-lookup-nss) + (password services) + (shadow services) + (group services) + (netgroup services) + (gshadow services))))) +@end example + +@c %start of generated documentation for nslcd-configuration + +Les champs de @code{nslcd-configuration} disponibles sont : + +@deftypevr {paramètre de @code{nslcd-configuration}} package nss-pam-ldapd +Le paquet @code{nss-pam-ldapd} à utiliser. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number threads +Le nombre de threads à démarrer qui peuvent gérer les requête et effectuer +des requêtes LDAP. Chaque thread ouvre une connexion séparée au serveur +LDAP. La valeur par défaut est de 5 threads. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} string uid +Cela spécifie l'id de l'utilisateur sous lequel le démon devrait tourner. + +La valeur par défaut est @samp{"nslcd"}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} string gid +Cela spécifie l'id du groupe sous lequel le démon devrait tourner. + +La valeur par défaut est @samp{"nslcd"}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} log-option log +Cette option contrôle la journalisation via une liste contenant le schéma et +le niveau. Le schéma peut être soit un symbole « none », « syslog », soit +un nom de fichier absolu. Le niveau est facultatif et spécifie le niveau de +journalisation. Le niveau de journalisation peut être l'un des symboles +suivants : « crit », « error », « warning », « notice », « info » ou « debug +». Tous les messages avec le niveau spécifié ou supérieurs sont +enregistrés. + +La valeur par défaut est @samp{("/var/log/nslcd" info)}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} list uri +La liste des URI des serveurs LDAP. Normalement, seul le premier serveur +sera utilisé avec les serveurs suivants comme secours. + +La valeur par défaut est @samp{("ldap://localhost:389/")}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string ldap-version +La version du protocole LDAP à utiliser. La valeur par défaut est +d'utiliser la version maximum supportée par la bibliothèque LDAP. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string binddn +Spécifie le nom distingué avec lequel se lier au serveur de répertoire pour +les recherches. La valeur par défaut est de se lier anonymement. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string bindpw +Spécifie le mot de passe avec lequel se lier. Cette option n'est valable +que lorsqu'elle est utilisée avec binddn. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string rootpwmoddn +Spécifie le nom distingué à utiliser lorsque l'utilisateur root essaye de +modifier le mot de passe d'un utilisateur avec le module PAM. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string rootpwmodpw +Spécifie le mot de passe à utiliser pour se lier si l'utilisateur root +essaye de modifier un mot de passe utilisateur. Cette option n'est valable +que si elle est utilisée avec rootpwmoddn + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string sasl-mech +Spécifie le mécanisme SASL à utiliser lors de l'authentification SASL. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string sasl-realm +Spécifie le royaume SASL à utiliser pour effectuer une authentification +SASL. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string sasl-authcid +Spécifie l'identité d'authentification à utiliser pour effectuer une +authentification SASL. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string sasl-authzid +Spécifie l'identité d'autorisation à utiliser lors d'une authentification +SASL. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean sasl-canonicalize? +Détermine si le nom d'hôte du serveur LDAP devrait être canonalisé. Si +c'est activé la bibliothèque LDAP effectuera une recherche de nom d'hôte +inversée. Par défaut, il est laissé à la bibliothèque LDAP le soin de +savoir si la vérification doit être effectuée ou non. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string krb5-ccname +Indique le nom du cache d'informations de connexion de GSS-API Kerberos. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} string base +La base de recherche de répertoires. + +La valeur par défaut est @samp{"dc=example,dc=com"}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} scope-option scope +Spécifie la portée de la recherche (subtree, onelevel, base ou children). +La portée par défaut est subtree ; la portée base n'est presque jamais utile +pour les recherches de service de noms ; la portée children n'est pas prise +en charge par tous les serveurs. + +La valeur par défaut est @samp{(subtree)}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-deref-option deref +Spécifie la politique de déréférencement des alias. La politique par défaut +est de ne jamais déréférencer d'alias. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean referrals +Spécifie s'il faut activer le suivi de référence. Le comportement par +défaut est de suivre les références. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} list-of-map-entries maps +Cette option permet d'ajouter des attributs personnalisés à rechercher à la +place des attributs par défaut de la RFC 2307. C'est une liste de +correspondances, consistant chacune en un nom, en l'attribut RFC 2307 à +utiliser et l'expression de la requête pour l'attribut tel qu'il sera +disponible dans le répertoire. + +La valeur par défaut est @samp{()}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} list-of-filter-entries filters +Une liste de filtres consistant en le nom d'une correspondance à laquelle +applique le filtre et en une expression de filtre de recherche LDAP. + +La valeur par défaut est @samp{()}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number bind-timelimit +Spécifie la limite de temps en seconds à utiliser lors de la connexion au +serveur de répertoire. La valeur par défaut est de 10 secondes. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number timelimit +Spécifie la limite de temps (en secondes) à attendre une réponse d'un +serveur LDAP. La valeur de zéro, par défaut, permet d'attendre indéfiniment +la fin des recherches. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number idle-timelimit +Spécifie la période d'inactivité (en seconde) après laquelle la connexion au +serveur LDAP sera fermée. La valeur par défaut est de ne jamais la fermer. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number reconnect-sleeptime +Spécifie le nombre de secondes pendant laquelle attendre lorsque la +connexion à tous les serveurs LDAP a échouée. Par défaut, il y a une +seconde d'attente entre le premier échec et la tentative suivante. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number reconnect-retrytime +Spécifie la durée après laquelle le serveur LDAP est considéré comme +définitivement inatteignable. Une fois cette durée atteinte, les tentatives +de connexions n'auront plus lieu qu'une fois par cet intervalle de temps. +La valeur par défaut est de 10 secondes. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-ssl-option ssl +Spécifie s'il faut utiliser SSL/TLS ou non (la valeur par défaut est non). +Si 'start-tls est spécifié alors StartTLS est utilisé à la place de LDAP sur +SSL. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-tls-reqcert-option tls-reqcert +Spécifie quelles vérifications effectuer sur les certificats donnés par les +serveurs. La signification des valeurs est décrite dans la page de manuel +de ldap.conf(5). + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-cacertdir +Spécifie le répertoire contenant les certificats X.509 pour +l'authentification des pairs. Ce paramètre est ignoré quand il est utilisé +avec GnuTLS. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-cacertfile +Spécifie le chemin des certificats X.509 pour l'authentification des pairs. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-randfile +Spécifie le chemin d'une source d'entropie. Ce paramètre est ignoré quand +il est utilisé avec GnuTLS. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-ciphers +Spécifie les suites de chiffrements à utiliser pour TLS en tant que chaîne +de caractères. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-cert +Spécifie le chemin vers le fichier contenant le certificat local pour +l'authentification TLS du client. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string tls-key +Spécifie le chemin du fichier contenant la clef privée pour +l'authentification TLS du client. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number pagesize +Indiquez un nombre plus grand que 0 pour demander des résultats paginés au +serveur LDAP en accord avec la RFC 2696. La valeur par défaut (0) est de ne +pas demander de pagination des résultats. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-ignore-users-option nss-initgroups-ignoreusers +Cette option évite les recherches d'appartenance au groupe à travers le LDAP +pour les utilisateurs spécifiés. Autrement, la valeur 'all-local peut être +utilisée. Avec cette valeur nslcd construit une liste complète des +utilisateurs non-LDAP au démarrage. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number nss-min-uid +Cette option s'assure que les utilisateurs LDAP avec un id utilisateur +numérique plus petit que la valeur spécifiée sont ignorés. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number nss-uid-offset +Cette option spécifie un décalage à ajouter à tous les id utilisateurs +numériques LDAP. Cela peut être utile pour éviter des collisions d'id +utilisateurs avec des utilisateurs locaux. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-number nss-gid-offset +Cette option spécifie un décalage à ajouter à tous les id de groupe +numériques LDAP. Cela peut être utile pour éviter des collisions d'id +utilisateurs avec des groupes locaux. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean nss-nested-groups +Si cette option est indiquée, l'attribut de membre de groupe peut pointer +vers un autre groupe. Les membres de groupes imbriqués sont aussi renvoyés +dans le groupe de haut-niveau et les groupes parents sont renvoyés lorsqu'on +recherche un utilisateur spécifique. La valeur par défaut est de ne pas +effectuer de recherche supplémentaire sur les groupes imbriqués. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean nss-getgrent-skipmembers +Si cette option est indiqée, la liste de membres du groupe n'est pas +récupérée lorsqu'on cherche un groupe. Les recherches pour trouver les +groupes auxquels un utilisateur appartient resteront fonctionnelles donc +l'utilisateur obtiendra probablement les bons groupes à la connexion. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean nss-disable-enumeration +Si cette option est indiquée, les fonctions qui causent le chargement de +toutes les entrées d'utilisateur et de groupe depuis le répertoire ne +pourront pas le faire. Cela peut grandement diminuer la charge du serveur +LDAP dans des situations où il y a beaucoup d'utilisateurs et de groupes. +Cette option n'est pas recommandées pour la plupart des configurations. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string validnames +Cette option peut être utilisée pour spécifier comment les noms +d'utilisateurs et de groupes sont vérifiés sur le système. Ce motif est +utilisé pour vérifier tous les noms d'utilisateurs et de groupes qui sont +demandés et renvoyés par le LDAP. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean ignorecase +Cela spécifie s'il faut ou non effectuer des recherches avec une +correspondance sensible à la casse. Activer cela pourrait mener à des +vulnérabilités de type contournement d'authentification sur le système et +introduire des vulnérabilité d'empoisonnement de cache nscd qui permettent +un déni de service. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-boolean pam-authc-ppolicy +Cette option spécifie si des contrôles de la politique de mots de passe sont +demandés et gérés par le serveur LDAP à l'authentification de l'utilisateur. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string pam-authc-search +Par défaut nslcd effectue une recherche LDAP avec le mot de passe de +l'utilisateur après BIND (authentification) pour s'assurer que l'opération +BIND a bien réussi. La recherche par défaut est une simple vérification que +le DN de l'utilisateur existe. Un filtre de recherche peut être spécifié +pour l'utiliser à la place. Il devrait renvoyer au moins une entrée. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string pam-authz-search +Cette option permet la configuration fine et flexible de la vérification +d'autorisation qui devrait être effectuée. Le filtre de recherche est +exécuté et si une entrée correspond, l'accès est autorisé, sinon il est +refusé. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} maybe-string pam-password-prohibit-message +Si cette option est indiquée, la modification de mot de passe par pam_ldap +sera refusée et le message spécifié sera présenté à l'utilisateur à la +place. Le message peut être utilisé pour rediriger les utilisateurs vers +une autre méthode pour changer leur mot de passe. + +La valeur par défaut est @samp{disabled}. + +@end deftypevr + +@deftypevr {paramètre de @code{nslcd-configuration}} list pam-services +Liste de noms de service pam pour lesquels l'authentification LDAP devrait +suffire. + +La valeur par défaut est @samp{()}. + +@end deftypevr + +@c %end of generated documentation for nslcd-configuration + + @node Services web @subsection Services web @@ -18359,11 +19487,12 @@ nginx. Ce type a les paramètres suivants : Nome de ces groupe de serveurs. @item @code{serveurs} -Specify the addresses of the servers in the group. The address can be -specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: -@samp{backend1.example.com}) or a path to a UNIX socket using the prefix -@samp{unix:}. For addresses using an IP address or domain name, the default -port is 80, and a different port can be specified explicitly. +Spécifie les adresses des serveurs dans le groupe. L'adresse peut être +spécifié avec une adresse IP (p.@: ex.@: @samp{127.0.0.1}), un nom de +domaine (p.@: ex.@: @samp{backend1.example.com}) ou un chemin vers un socket +UNIX avec le préfixe @samp{unix:}. Pour les adresse utilisant une adresse +IP ou un nom de domaine, le port par défaut est 80 et un port différent peut +être spécifié explicitement. @end table @end deftp @@ -18431,8 +19560,8 @@ Un nom pour cet instance de Varnish. Varnish va créer un répertoire dans endroit. Si le nom commence par une barre oblique, il est interprété comme un nom de répertoire absolu. -Pass the @code{-n} argument to other Varnish programs to connect to the -named instance, e.g.@: @command{varnishncsa -n default}. +Passez l'argument @code{-n} aux autres programmes Varnish pour vous +connecter à l'instance nommée, p.@: ex.@: @command{varnishncsa -n default}. @item @code{backend} (par défaut : @code{"localhost:8080"}) Le moteur à utiliser. Cette option n'a pas d'effet si @code{vcl} est vrai. @@ -18508,8 +19637,8 @@ Un type de service pour le mandataire FastCGI @code{fcgiwrap}. @end defvr @deftp {Type de données} fcgiwrap-configuration -Data type representing the configuration of the @code{fcgiwrap} service. -This type has the following parameters: +Type de données représentant la configuration du service @code{fcgiwrap}. +Ce type a les paramètres suivants : @table @asis @item @code{package} (par défaut : @code{fcgiwrap}) Le paquet fcgiwrap à utiliser. @@ -18560,7 +19689,7 @@ une fonction spéciale pour terminer la requête et nettoyer toutes les données tout en continuant à faire d'autres choses qui prennent du temps (conversion vidéo, gestion des stats, etc…). @end itemize -...@: and much more. +…@: et bien plus. @defvr {Variable Scheme} php-fpm-service-type Un type de service pour @code{php-fpm}. @@ -18600,7 +19729,7 @@ Fichier de journal pour le processus maître de php-fpm. Configuration détaillée pour le gestionnaire de processus de php-fpm. Il doit s'agir soit de : @table @asis -@item @code{<php-fpm-dynamic-process-manager-configuration>,} +@item @code{<php-fpm-dynamic-process-manager-configuration>} @item @code{<php-fpm-static-process-manager-configuration> ou} @item @code{<php-fpm-on-demand-process-manager-configuration>} @end table @@ -18610,8 +19739,8 @@ clients et affichés dans leur navigateur. Cela est utile pour un développement php local, mais un risque pour la sécurité pour les sites publics, comme les messages d'erreur peuvent révéler des mots de passes et des données personnelles. -@item @code{timezone} (default @code{#f}) -Specifies @code{php_admin_value[date.timezone]} parameter. +@item @code{timezone} (par défaut : @code{#f}) +Spécifie le paramètre @code{php_admin_value[date.timezone]}. @item @code{workers-logfile} (par défaut : @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")}) Ce fichier enregistrera la sortie @code{stderr} des processus de travail de php. On peut indiquer @code{#f} pour désactiver la journalisation. @@ -18693,7 +19822,7 @@ l'utilisation de php-fpm dans @code{Nginx}. Il permet de générer des avatars de chats à partir d'une graine, par exemple le hash de l'adresse de courriel d'un utilisateur. -@deffn {Scheme Procedure} cat-avatar-generator-service @ +@deffn {Procédure Scheme} cat-avatar-generator-service @ [#:cache-dir "/var/cache/cat-avatar-generator"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] @@ -18816,12 +19945,12 @@ certificat. Ce certificat est valide pour une durée limitée et donc, pour continuer à fournir des services en TLS, le serveur doit régulièrement demander à la CA de renouveler sa signature. -The certbot service automates this process: the initial key generation, the -initial certification request to the Let's Encrypt service, the web server -challenge/response integration, writing the certificate to disk, the -automated periodic renewals, and the deployment tasks associated with the -renewal (e.g.@: reloading services, copying keys with different -permissions). +Le service certbot automatise ce processus : la génération initiale de la +clef, la demande de certification initiale au service Let's Encrypt, +l'intégration du protocole de défi/réponse dans le serveur web, l'écriture +du certificat sur le disque, les renouvellements périodiques et les taches +de déploiement avec le renouvellement (p.@: ex.@: recharger les services, +copier les clefs avec d'autres permissions). Certbot est lancé deux fois par jour, à une minute aléatoire dans l'heure. Il ne fera rien sauf si vos certificats doivent être renouvelés ou sont @@ -19238,7 +20367,7 @@ la base par défaut (une base de données kasp initialisée par ce service). Indique si la clef est gérée manuellement ou automatiquement. @item @code{single-type-signing?} (par défaut : @code{#f}) -Lorsque la valeur est @code{#t}, utilise le schéma de signature Single-Type +Lorsque la valeur est @code{#t}, utilise le schéma de signature Single-Type. @item @code{algorithm} (par défaut : @code{"ecdsap256sha256"}) Un algorithme de clef de signature et de signatures. @@ -19885,7 +21014,7 @@ La valeur par défaut est @samp{"client"}. @end deftypevr @deftypevr {paramètre de @code{openvpn-ccd-configuration}} ip-mask iroute -Le réseau du client. +Le réseau du client La valeur par défaut est @samp{#f}. @@ -20434,7 +21563,7 @@ La valeur par défaut est @samp{disabled}. @deftypevr {paramètre de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-ac? Active la gestion de l'énergie à l'exécution pour les contrôleurs AHCI et -les disques, sur secteur +les disques, sur secteur. La valeur par défaut est @samp{disabled}. @@ -20726,6 +21855,15 @@ Le répertoire à scanner pour trouver les fichiers de musique. @item @code{playlist-dir} (par défaut : @code{"~/.mpd/playlists"}) Le répertoire où stocker les playlists. +@item @code{db-file} (par défaut : @code{"~/.mpd/tag_cache"}) +Emplacement de la base de données de musiques. + +@item @code{state-file} (par défaut : @code{"~/.mpd/state"}) +Emplacement du fichier qui stocke l'état actuel de MPD. + +@item @code{sticker-file} (par défaut : @code{"~/.mpd/sticker.sql"}) +Emplacement de la base de données de stickers. + @item @code{port} (par défaut : @code{"6600"}) Le port sur lequel lancer mpd. @@ -20793,16 +21931,16 @@ La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string tls-port -Pour pour accepter les connexions TLS sécurisées. Il peut s'agir d'un -numéro de port ou d'un nom de service. +Port pour accepter les connexions TLS sécurisées. Il peut s'agir d'un +numéro de port ou d'un nom de service La valeur par défaut est @samp{"16514"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string tcp-port -Pour sur lequel accepter les connexions TCP non sécurisées. Cela peut être -un numéro de port ou un nom de service. +Port sur lequel accepter les connexions TCP non sécurisées. Cela peut être +un numéro de port ou un nom de service La valeur par défaut est @samp{"16509"}. @@ -20859,7 +21997,7 @@ La valeur par défaut est @samp{"0770"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-admin-perms -permissions Unix pour le socket d'administration. La valeur par défaut ne +Permissions Unix pour le socket d'administration. La valeur par défaut ne permet que le propriétaire (root), ne la changez pas à moins que vous ne soyez sûr de savoir à qui vous exposez cet accès. @@ -20876,7 +22014,7 @@ La valeur par défaut est @samp{"/var/run/libvirt"}. @deftypevr {paramètre de @code{libvirt-configuration}} string auth-unix-ro Schéma d'authentification pour les socket Unix en lecture-seule. Par défaut -les permissions des socket permettent à n'importe qui de se connecter. +les permissions des socket permettent à n'importe qui de se connecter La valeur par défaut est @samp{"polkit"}. @@ -20907,7 +22045,7 @@ chiffrés par la couche TLS, et une authentification limitée est effectuée avec les certificats. Il est possible d'utiliser de n'importe quel mécanisme d'authentification -SASL en utilisant « sasl » pour cette option. +SASL en utilisant « sasl » pour cette option La valeur par défaut est @samp{"none"}. @@ -21019,7 +22157,7 @@ La valeur par défaut est @samp{1000}. @deftypevr {paramètre de @code{libvirt-configuration}} integer max-anonymous-clients Longueur maximum de la queue des clients acceptés mais pas authentifiés. -Indiquez zéro pour désactiver ce paramètre. +Indiquez zéro pour désactiver ce paramètre La valeur par défaut est @samp{20}. @@ -21204,7 +22342,7 @@ La valeur par défaut est @samp{"3:stderr"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer audit-level -Permet de modifier l'utilisation du sous-système d'audit. +Permet de modifier l'utilisation du sous-système d'audit @itemize @bullet @item @@ -21224,7 +22362,7 @@ La valeur par défaut est @samp{1}. @deftypevr {paramètre de @code{libvirt-configuration}} boolean audit-logging Envoie les messages d'audit via l'infrastructure de journalisation de -libvirt +libvirt. La valeur par défaut est @samp{#f}. @@ -21470,7 +22608,7 @@ QEMU à utiliser ainsi que l'architecture que vous voulez émuler : @example (service qemu-binfmt-service-type (qemu-binfmt-configuration - (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc")))) + (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el")))) @end example Dans cet exemple, on active l'émulation transparente pour les plateformes @@ -21988,9 +23126,9 @@ La valeur par défaut est @samp{"/favicon.ico"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string footer -The content of the file specified with this option will be included verbatim -at the bottom of all pages (i.e.@: it replaces the standard "generated -by..."@: message). +Le contenu du fichier spécifié avec cette option sera inclus directement au +bas de toutes les pages (c.-à-d.@: qu'il remplace le message « généré par +…@: » générique). La valeur par défaut est @samp{""}. @@ -22651,7 +23789,7 @@ par défaut et la clef SSH fournie. Gitolite est configuré via un dépôt d'administration spécial que vous pouvez cloner. Par exemple, si vous hébergez Gitolite sur @code{example.com}, vous -pouvez lancer la commande suivante pour cloner le dépôt d'administration : +pouvez lancer la commande suivante pour cloner le dépôt d'administration. @example git clone git@@example.com:gitolite-admin @@ -22765,8 +23903,8 @@ Le pour sur lequel lier le serveur. @cindex empreinte digitale @subsubheading Service d'empreintes digitales -Le module @code{(gnu services fingerprint)} fournit un service DBus pour -lire et identifier les empreintes digitales via un lecteur d'empreinte. +The @code{(gnu services authentication)} module provides a DBus service to +read and identify fingerprints via a fingerprint sensor. @defvr {Variable Scheme} fprintd-service-type Le type de service pour @command{fprintd}, qui fournit des capacités de @@ -22869,6 +24007,36 @@ résolution d'affichage du client lorsque la fenêtre de la console graphique est redimensionnée. @end deffn +@cindex inputattach +@subsubheading Service inputattach + +@cindex entrée tablette, pour Xorg +@cindex écran tactile, pour Xorg +Le service @uref{https://linuxwacom.github.io/, inputattach} vous permet +d'utiliser des périphériques d'entrée comme les tablettes Wacom, les écrans +tactiles ou les joysticks avec le serveur d'affichage Xorg. + +@deffn {Variable Scheme} inputattach-service-type +Type d'un service qui lance @command{inputattach} sur un appareil et envie +les événements qu'il reçoit. +@end deffn + +@deftp {Type de données} inputattach-configuration +@table @asis +@item @code{device-type} (par défaut : @code{"wacom"}) +Le type du périphérique à gérer. Lancez @command{inputattach --help}, du +paquet @code{inputattach}, pour voir la liste des types de périphériques +supportés. + +@item @code{device} (par défaut : @code{"/dev/ttyS0"}) +Le fichier de périphérique pour s'y connecter. + +@item @code{log-file} (par défaut : @code{#f}) +Si la valeur est vraie, cela doit être le nom d'un fichier où enregistrer +les messages. +@end table +@end deftp + @subsection Services de dictionnaires @cindex dictionnaire Le module @code{(gnu services dict)} fournit le service suivant : @@ -22924,7 +24092,7 @@ Dico Manual}). @item @code{options} Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire -de module. +de module @end table @end deftp @@ -22974,29 +24142,28 @@ Voici un exemple de configuration de @code{dicod-service}. @end example @cindex Docker -@subsubheading Docker Service +@subsubheading Service Docker -The @code{(gnu services docker)} module provides the following service. +Le module @code{(gnu services docker)} fournit le service suivant. -@defvr {Scheme Variable} docker-service-type +@defvr {Variable Scheme} docker-service-type -This is the type of the service that runs -@url{http://www.docker.com,Docker}, a daemon that can execute application -bundles (sometimes referred to as ``containers'') in isolated environments. +C'est le type du service qui lance @url{http://www.docker.com,Docker}, un +démon qui peut exécuter des lots applicatifs (aussi appelés « conteneurs ») +dans des environnements isolés. @end defvr -@deftp {Data Type} docker-configuration -This is the data type representing the configuration of Docker and -Containerd. +@deftp {Type de données} docker-configuration +Le type de données qui représente la configuration de Docker et Containerd. @table @asis -@item @code{package} (default: @code{docker}) -The Docker package to use. +@item @code{package} (par défaut : @code{docker}) +Le paquet Docker à utiliser. -@item @code{containerd} (default: @var{containerd}) -The Containerd package to use. +@item @code{containerd} (par défaut : @var{containerd}) +Le paquet Containerd à utiliser. @end table @end deftp @@ -23073,11 +24240,11 @@ Cependant, la plupart des autres programmes qui peuvent parler HTTPS — trouver les certificats des CA. @cindex @code{nss-certs} -In Guix, this is done by adding a package that provides certificates to the -@code{packages} field of the @code{operating-system} declaration -(@pxref{Référence de système d'exploitation}). Guix includes one such package, -@code{nss-certs}, which is a set of CA certificates provided as part of -Mozilla's Network Security Services. +Dans Guix, cela se fait en ajoutant un paquet qui fournit les certificats +dans le champ @code{packages} de la déclaration @code{operating-system} +(@pxref{Référence de système d'exploitation}). Guix inclut l'un de ces paquets, +@code{nss-certs}, qui est un ensemble de certificats de CA fourni par les +services de sécurité réseau de Mozilla (nss). Remarquez qu'il ne fait @emph{pas} partie de @var{%base-packages}, donc vous devez explicitement l'ajouter. Le répertoire @file{/etc/ssl/certs}, là où @@ -23173,12 +24340,12 @@ bas) contient cette configuration, donc vous n'avez pas besoin de tout taper si vous voulez simplement que la résolution de nom en @code{.local} fonctionne. -Note that, in this case, in addition to setting the -@code{name-service-switch} of the @code{operating-system} declaration, you -also need to use @code{avahi-service-type} (@pxref{Services réseau, -@code{avahi-service-type}}), or @var{%desktop-services}, which includes it -(@pxref{Services de bureaux}). Doing this makes @code{nss-mdns} accessible to -the name service cache daemon (@pxref{Services de base, @code{nscd-service}}). +Remarquez que dans ce cas, en plus de mettre en place le +@code{name-service-switch} de la déclaration @code{operating-system}, vous +devez aussi utiliser @code{avahi-service-type} (@pxref{Services réseau, +@code{avahi-service}}), ou @var{%desktop-services} qui l'inclut +(@pxref{Services de bureaux}). Cela rend @code{nss-mdns} accessible au démon +de cache du service de nom (@pxref{Services de base, @code{nscd-service}}). Pour votre confort, les variables suivantes contiennent des configurations NSS typiques. @@ -23326,9 +24493,9 @@ l'option @code{-append} de QEMU), notamment : Dit au disque de RAM initial de charger @var{boot}, un fichier contenant un programme Scheme, une fois qu'il a monté le système de fichier racine. -Guix uses this option to yield control to a boot program that runs the -service activation programs and then spawns the GNU@tie{}Shepherd, the -initialization system. +Guix utilise cette option pour donner le contrôle à un programme de +démarrage qui lance les programmes d'activation de services puis démarre le +GNU@tie{}Shepherd, le système d'initialisation. @item --root=@var{root} Monte @var{root} comme système de fichier racine. @var{root} peut être un @@ -23365,6 +24532,7 @@ l'utiliser le personnalisé plus avant. @cindex disque de RAM initial @deffn {Procédure Scheme} raw-initrd @var{file-systems} @ [#:linux-modules '()] [#:mapped-devices '()] @ +[#:keyboard-layout #f] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Renvoie une dérivation qui construit un initrd. @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus @@ -23377,6 +24545,13 @@ paquets à copier dans l'initrd. Elle peut inclure @code{e2fsck/static} ou d'autres paquets requis par l'initrd pour vérifier le système de fichiers racine. +Lorsque la valeur est vraie, @var{keyboard-layout} est un enregistrement +@code{<keyboard-layout>} dénotant la disposition du clavier désirée pour la +console. Cela est effectuée avant que les @var{mapped-devices} ne soient +créés et avant que les @var{file-systems} ne soient montés, de sorte que, si +l'utilisateur au besoin de saisir une phrase de passe ou d'utiliser le REPL, +cela arrive avec la disposition du clavier voulue. + Lorsque @var{qemu-networking?} est vrai, paramètre le réseau avec les paramètres QEMU standards. Lorsque @var{virtio?} est vrai, charge des modules supplémentaires pour que l'initrd puisse être utilisé comme client @@ -23387,7 +24562,8 @@ inscriptible mais tous les changements seront perdus. @end deffn @deffn {Procédure Scheme} base-initrd @var{file-systems} @ - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f] @ + [#:mapped-devices '()] [#:keyboard-layout #f] @ +[#:qemu-networking? #f] [#:volatile-root? #f] @ [#:linux-modules '()] Renvoie un objet simili-fichier contenant un initrd générique, avec les modules du noyau de @var{linux}. @var{file-systems} est une liste de @@ -23396,6 +24572,13 @@ système de fichiers racine spécifié sur la ligne de commande du noyau via @code{--root}. @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant de monter les @var{file-systems}. +Lorsque la valeur est vraie, @var{keyboard-layout} est un enregistrement +@code{<keyboard-layout>} dénotant la disposition du clavier désirée pour la +console. Cela est effectuée avant que les @var{mapped-devices} ne soient +créés et avant que les @var{file-systems} ne soient montés, de sorte que, si +l'utilisateur au besoin de saisir une phrase de passe ou d'utiliser le REPL, +cela arrive avec la disposition du clavier voulue. + @var{qemu-networking?} et @var{volatile-root?} se comportent comme pour @code{raw-initrd}. @@ -23491,6 +24674,19 @@ au système actuel. Le nombre de secondes à attendre une entrée clavier avant de démarrer. Indiquez 0 pour démarre immédiatement, et -1 pour attendre indéfiniment. +@cindex disposition du clavier, pour le chargeur d'amorçage +@item @code{keyboard-layout} (par défaut : @code{#f}) +Si c'est @code{#f}, le menu du chargeur d'amorçage (s'il y en a un) utilise +la disposition du clavier par défaut, normalement pour l'anglais américain +(« qwerty »). + +Sinon, cela doit être un objet @code{keyboard-layout} (@pxref{Disposition du clavier}). + +@quotation Remarque +Cette option est actuellement ignorée par les chargeurs d'amorçage autre que +@code{grub} et @code{grub-efi}. +@end quotation + @item @code{theme} (par défaut : @var{#f}) L'objet de thème du chargeur d'amorçage décrivant le thème utilisé. Si aucun thème n'est fournit, certains chargeurs d'amorçage peuvent utiliser un @@ -23594,8 +24790,8 @@ périphérique donné par l'OS comme @file{/dev/sda1}. @end deftp @c FIXME: Write documentation once it's stable. -Pour l'instant seul GRUB supporte les thèmes. On crée un thème GRUB avec la -forme @code{grub-theme}, qui n'est pas encore documentée. +For now only GRUB has theme support. GRUB themes are created using the +@code{grub-theme} form, which is not documented yet. @defvr {Variable Scheme} %default-theme C'est le thème par défaut de GRUB utilisé par le système d'exploitation si @@ -23625,7 +24821,7 @@ supportées : @table @code @item search Affiche les définitions des types de services disponibles qui correspondent -aux expressions régulières données, triées par pertinence. +aux expressions régulières données, triées par pertinence : @example $ guix system search console font @@ -23658,17 +24854,18 @@ Comme pour @command{guix package --search}, le résultat est écrit au format GNU recutils databases,, recutils, GNU recutils manual}). @item reconfigure -Build the operating system described in @var{file}, activate it, and switch -to it@footnote{This action (and the related actions @code{switch-generation} -and @code{roll-back}) are usable only on systems already running Guix -System.}. - -This effects all the configuration specified in @var{file}: user accounts, -system services, global package list, setuid programs, etc. The command -starts system services specified in @var{file} that are not currently -running; if a service is currently running this command will arrange for it -to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or -@code{herd restart X}). +Construit le système d'exploitation décrit dans @var{file}, l'active et +passe dessus@footnote{Cette action (et les action liées que sont +@code{switch-generation} et @code{roll-back}) ne sont utilisables que sur +les systèmes sous Guix System.}. + +Cela met en application toute la configuration spécifiée dans @var{file} : +les comptes utilisateurs, les services du système, la liste globale des +paquets, les programmes setuid, etc. La commande démarre les services +systèmes spécifiés dans @var{file} qui ne sont pas actuellement lancés ; si +un service est actuellement exécuté cette commande s'arrange pour qu'il soit +mis à jour la prochaine fois qu'il est stoppé (p.@: ex@: par @code{herd stop +X} ou @code{herd restart X}). Cette commande crée une nouvelle génération dont le numéro est un de plus que la génération actuelle (rapportée par @command{guix system @@ -23746,30 +24943,33 @@ après avoir lancé cette action pour vraiment démarrer sur la génération précédente du système. @item delete-generations -@cindex deleting system generations -@cindex saving space -Delete system generations, making them candidates for garbage collection -(@pxref{Invoquer guix gc}, for information on how to run the ``garbage -collector''). +@cindex supprimer des générations du système +@cindex gagner de la place +Supprimer des générations du système, ce qui les rend disponibles pour le +ramasse-miettes (@pxref{Invoquer guix gc}, pour des informations sur la +manière de lancer le « ramasse-miettes »). -This works in the same way as @command{guix package --delete-generations} -(@pxref{Invoquer guix package, @code{--delete-generations}}). With no -arguments, all system generations but the current one are deleted: +Cela fonctionne comme pour @command{guix package --delete-generations} +(@pxref{Invoquer guix package, @code{--delete-generations}}). Avec aucun +argument, toutes les générations du système sauf la génération actuelle sont +supprimées : @example guix system delete-generations @end example -You can also select the generations you want to delete. The example below -deletes all the system generations that are more than two month old: +Vous pouvez aussi choisir les générations que vous voulez supprimer. +L'exemple plus bas supprime toutes les génération du système plus vieilles +que deux mois : @example guix system delete-generations 2m @end example -Running this command automatically reinstalls the bootloader with an updated -list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no -longer lists the generations that have been deleted. +Lancer cette commande réinstalle automatiquement le chargeur d'amorçage avec +une liste à jour d'entrées de menu — p.@: ex.@: le sous-menu « anciennes +générations » dans GRUB ne liste plus les générations qui ont été +supprimées. @item build Construit la dérivation du système d'exploitation, ce qui comprend tous les @@ -23777,9 +24977,9 @@ fichiers de configuration et les programmes requis pour démarrer et lancer le système. Cette action n'installe rien. @item init -Populate the given directory with all the files necessary to run the -operating system specified in @var{file}. This is useful for first-time -installations of Guix System. For instance: +Rempli le répertoire donné avec tous les fichiers nécessaires à lancer le +système d'exploitation spécifié dans @var{file}. C'est utile pour la +première installation de Guix System. Par exemple : @example guix system init my-os-config.scm /mnt @@ -23800,20 +25000,22 @@ soit passée. @cindex machine virtuelle @cindex VM @anchor{guix system vm} -Build a virtual machine that contains the operating system declared in -@var{file}, and return a script to run that virtual machine (VM). +Construit une machine virtuelle qui contient le système d'exploitation +déclaré dans @var{file} et renvoie un script pour lancer cette machine +virtuelle (VM). @quotation Remarque -The @code{vm} action and others below can use KVM support in the Linux-libre -kernel. Specifically, if the machine has hardware virtualization support, -the corresponding KVM kernel module should be loaded, and the -@file{/dev/kvm} device node must exist and be readable and writable by the -user and by the build users of the daemon (@pxref{Réglages de l'environnement de construction}). +Les actions @code{vm} et les autres plus bas peuvent utiliser la prise en +charge KVM du noyau Linux-libre. Plus spécifiquement, si la machine prend +en charge la virtualisation matérielle, le module noyau KVM correspondant +devrait être chargé, et le nœud de périphérique @file{/dev/kvm} devrait +exister et être lisible et inscriptible pour l'utilisateur et pour les +utilisateurs de construction du démon (@pxref{Réglages de l'environnement de construction}). @end quotation -Arguments given to the script are passed to QEMU as in the example below, -which enables networking and requests 1@tie{}GiB of RAM for the emulated -machine: +Les arguments passés au script sont passés à QEMU comme dans l'exemple +ci-dessous, qui active le réseau et demande 1@tie{}Go de RAM pour la machine +émulée : @example $ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user @@ -23862,9 +25064,9 @@ ignorée dans le cas de @code{docker-image}. Vous pouvez spécifier le type de système de fichiers racine avec l'option @option{--file-system-type}. La valeur par défaut est @code{ext4}. -When using @code{vm-image}, the returned image is in qcow2 format, which the -QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more -information on how to run the image in a virtual machine. +Lorsque vous utilisez @code{vm-image}, l'image renvoyée est au format qcow2, +que l'émulateur QEMU peut utiliser efficacement. @xref{Lancer Guix dans une VM}, pour plus d'informations sur la manière de lancer l'image dans une +machine virtuelle. Lorsque vous utilisez @code{disk-image}, une image disque brute est produite ; elle peut être copiée telle quelle sur un périphérique USB. En supposant @@ -23883,19 +25085,20 @@ ensuite charger l'image et lancer un conteneur Docker avec des commande comme : @example -image_id="$(docker load < guixsd-docker-image.tar.gz)" +image_id="$(docker load < guix-system-docker-image.tar.gz)" docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\ --entrypoint /var/guix/profiles/system/profile/bin/guile \\ $image_id /var/guix/profiles/system/boot @end example -This command starts a new Docker container from the specified image. It -will boot the Guix system in the usual manner, which means it will start any -services you have defined in the operating system configuration. Depending -on what you run in the Docker container, it may be necessary to give the -container additional permissions. For example, if you intend to build -software using Guix inside of the Docker container, you may need to pass the -@option{--privileged} option to @code{docker run}. +Cette commande démarre un nouveau conteneur Docker à partir de l'image +spécifiée. Il démarrera le système Guix de la manière habituelle, ce qui +signifie qu'il démarrera tous les services que vous avez définis dans la +configuration du système d'exploitation. En fonction de ce que vous lancez +dans le conteneur Docker, il peut être nécessaire de donner des permissions +supplémentaires au conteneur. Par exemple, si vous voulez construire des +paquets avec Guix dans le conteneur Docker, vous devriez passer +@option{--privileged} à @code{docker run}. @item conteneur Renvoie un script qui lance le système d'exploitation déclaré dans @@ -23932,9 +25135,10 @@ de ces options : @table @option @item --expression=@var{expr} @itemx -e @var{expr} -Consider the operating-system @var{expr} evaluates to. This is an -alternative to specifying a file which evaluates to an operating system. -This is used to generate the Guix system installer @pxref{Construire l'image d'installation}). +Considère le système d'exploitation en lequel s'évalue @var{expr}. C'est +une alternative à la spécification d'un fichier qui s'évalue en un système +d'exploitation. C'est utilisé pour générer l'installateur du système Guix +(@pxref{Construire l'image d'installation}). @item --system=@var{système} @itemx -s @var{système} @@ -23986,8 +25190,8 @@ qui peuvent être requis au démarrage sont listés dans @code{initrd-modules} complètement. @cindex on-error -@cindex on-error strategy -@cindex error strategy +@cindex stratégie on-error +@cindex stratégie en cas d'erreur @item --on-error=@var{strategy} Applique @var{strategy} lorsqu'une erreur arrive lors de la lecture de @var{file}. @var{strategy} peut être l'une des valeurs suivantes : @@ -24010,10 +25214,10 @@ disponibles. @end table @end table -Once you have built, configured, re-configured, and re-re-configured your -Guix installation, you may find it useful to list the operating system -generations available on disk---and that you can choose from the bootloader -boot menu: +Une fois que vous avez construit, re-configuré et re-re-configuré votre +installation Guix, vous pourriez trouver utile de lister les générations du +système disponibles sur le disque — et que vous pouvez choisir dans le menu +du chargeur d'amorçage : @table @code @@ -24065,17 +25269,17 @@ de graphe. @end table -@node Running Guix in a VM -@section Running Guix in a Virtual Machine +@node Lancer Guix dans une VM +@section Exécuter Guix sur une machine virtuelle @cindex machine virtuelle -To run Guix in a virtual machine (VM), one can either use the pre-built Guix -VM image distributed at -@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} -, or build their own virtual machine image using @command{guix system -vm-image} (@pxref{Invoquer guix system}). The returned image is in qcow2 -format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently -use. +Pour exécuter GuixSD sur une machine virtuelle (VM), on peut soit utiliser +l'image de VM GuixSD pré-construite sur +@indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{système}.xz} +ou construire sa propre image de machine virtuelle avec @command{guix system +vm-image} (@pxref{Invoquer guix system}). L'image renvoyée est au format +qcow2, que l'@uref{http://qemu.org/,émulateur QEMU} peut utiliser +efficacement. @cindex QEMU Si vous construisez votre propre image, vous devez la copier en dehors du @@ -24083,7 +25287,7 @@ dépôt (@pxref{Le dépôt}) et vous donner la permission d'écrire sur la copie avant de pouvoir l'utiliser. Lorsque vous invoquez QEMU, vous devez choisir un émulateur système correspondant à votre plate-forme matérielle. Voici une invocation minimale de QEMU qui démarrera le résultat de @command{guix -system vm-image} sur un matériel x8_64. +system vm-image} sur un matériel x8_64 : @example $ qemu-system-x86_64 \ @@ -24140,7 +25344,7 @@ Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme @code{(lsh-service)} ne peut actuellement pas démarrer sans supervision. Il a besoin que vous tapiez quelques caractères pour initialiser le générateur d'aléatoire. En plus vous devez transférer le port 22, par défaut, à -l'hôte. Vous pouvez faire cela avec : +l'hôte. Vous pouvez faire cela avec @example `guix system vm config.scm` -net user,hostfwd=tcp::10022-:22 @@ -24213,17 +25417,17 @@ gestion des périphériques et les rend disponible au démon eudev ; le service @file{/etc} rempli le répertoire @file{/etc} du système. @cindex extensions de service -Guix system services are connected by @dfn{extensions}. For instance, the -secure shell service @emph{extends} the Shepherd---the initialization -system, running as PID@tie{}1---by giving it the command lines to start and -stop the secure shell daemon (@pxref{Services réseau, -@code{openssh-service-type}}); the UPower service extends the D-Bus service -by passing it its @file{.service} specification, and extends the udev -service by passing it device management rules (@pxref{Services de bureaux, -@code{upower-service}}); the Guix daemon service extends the Shepherd by -passing it the command lines to start and stop the daemon, and extends the -account service by passing it a list of required build user accounts -(@pxref{Services de base}). +Les services de Guix sont connectés par des @dfn{extensions}. Par exemple, +le service ssh @dfn{étend} le Shepherd — le système d'initialisation de +GuixSD, qui tourne en tant que PID@tie{}1 — en lui donnant les lignes de +commande pour démarrer et arrêter le démon ssh (@pxref{Services réseau, +@code{lsh-service}}) ; le service UPower étend le service D-Bus en lui +passant sa spécification @file{.service} et étend le service udev en lui +passant des règles de gestion de périphériques (@pxref{Services de bureaux, +@code{upower-service}}) ; le démon Guix étend le Shepherd en lui passant les +lignes de commande pour démarrer et arrêter le démon et étend le service de +comptes en lui passant une liste des comptes utilisateurs de constructions +requis (@pxref{Services de base}). En définitive, les services et leurs relation « d'extensions » forment un graphe orienté acyclique (DAG). Si nous représentons les services comme des @@ -24242,11 +25446,11 @@ la manière de générer cette représentation pour une définition de système d'exploitation particulière. @cindex types de services -Technically, developers can define @dfn{service types} to express these -relations. There can be any number of services of a given type on the -system---for instance, a system running two instances of the GNU secure -shell server (lsh) has two instances of @code{lsh-service-type}, with -different parameters. +Techniquement, les développeurs peuvent définir des @dfn{types de services} +pour exprimer ces relations. Il peut y avoir n'importe quel quantité de +services d'un type donné sur le système — par exemple, un système sur lequel +tournent deux instances du serveur ssh de GNU (lsh) a deux instance de +@var{lsh-service-type}, avec des paramètres différents. La section suivante décrit l'interface de programmation des types de services et des services. @@ -24288,24 +25492,23 @@ exception est le @dfn{type de service boot}, qui est le service ultime. Éventuellement, une valeur par défaut pour les instances de ce type. @end enumerate -Dans cet exemple, @var{guix-service-type} étend trois services : +In this example, @code{guix-service-type} extends three services: -@table @var +@table @code @item shepherd-root-service-type -La procédure @var{guix-shepherd-service} définit comment le service du -Shepherd est étendu. En fait, elle renvoie un objet -@code{<shepherd-service>} qui définit comment @command{guix-daemon} est -démarré et stoppé (@pxref{Services Shepherd}). +The @code{guix-shepherd-service} procedure defines how the Shepherd service +is extended. Namely, it returns a @code{<shepherd-service>} object that +defines how @command{guix-daemon} is started and stopped (@pxref{Services Shepherd}). @item account-service-type -Cette extension pour ce service est calculée par @var{guix-accounts}, qui -renvoie une liste d'objets @code{user-group} et @code{user-account} -représentant les comptes des utilisateurs de construction (@pxref{Invoquer guix-daemon}). +This extension for this service is computed by @code{guix-accounts}, which +returns a list of @code{user-group} and @code{user-account} objects +representing the build user accounts (@pxref{Invoquer guix-daemon}). @item activation-service-type -Ici, @var{guix-activation} est une procédure qui renvoie une gexp, qui est -un bout de code qui s'exécute au moment de l'activation — p.@: ex.@: lorsque -le service est démarré. +Here @code{guix-activation} is a procedure that returns a gexp, which is a +code snippet to run at ``activation time''---e.g., when the service is +booted. @end table Un service de ce type est instancié de cette manière : @@ -24328,8 +25531,8 @@ valeur est omise, la valeur par défaut spécifiée par (service guix-service-type) @end example -@var{guix-service-type} est très simple car il étend d'autres services mais -ne peut pas être étendu. +@code{guix-service-type} is quite simple because it extends other services +but is not extensible itself. @c @subsubsubsection Extensible Service Types @@ -24351,11 +25554,10 @@ Le type de service pour un service @emph{extensible} ressemble à ceci : (rules (append initial-rules rules))))))))) @end example -C'est le type de service pour le -@uref{https://wiki.gentoo.org/wiki/Project:Eudev, le démon de gestion des -périphériques eudev}. Comparé à l'exemple précédent, en plus d'une -extension de @var{shepherd-root-service-type}, on trouve deux nouveaux -champs : +This is the service type for the +@uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management +daemon}. Compared to the previous example, in addition to an extension of +@code{shepherd-root-service-type}, we see two new fields: @table @code @item compose @@ -24381,9 +25583,9 @@ du balisage Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). La commande afficher (@pxref{Invoquer guix system}). @end table -Il ne peut y avoir qu'une instance d'un type de service extensible comme -@var{udev-service-type}. S'il y en avait plus, les spécification -@code{service-extension} seraient ambiguës. +There can be only one instance of an extensible service type such as +@code{udev-service-type}. If there were more, the @code{service-extension} +specifications would be ambiguous. Toujours ici ? La section suivante fournit une référence de l'interface de programmation des services. @@ -24453,13 +25655,13 @@ Voici un exemple de la manière dont un service est créé et manipulé : @result{} #t @end example -La forme @code{modify-services} fournit une manière pratique de modifier les -paramètres de certains services d'une liste comme @var{%base-services} -(@pxref{Services de base, @code{%base-services}}). Elle s'évalue en une liste -de services. Bien sûr, vous pouvez toujours utiliser les combinateurs de -liste standards comme @code{map} et @code{fold} pour cela (@pxref{SRFI-1, -List Library,, guile, GNU Guile Reference Manual}) ; @code{modify-services} -fournit simplement une manière plus concise pour ce besoin commun. +The @code{modify-services} form provides a handy way to change the +parameters of some of the services of a list such as @code{%base-services} +(@pxref{Services de base, @code{%base-services}}). It evaluates to a list of +services. Of course, you could always use standard list combinators such as +@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, +GNU Guile Reference Manual}); @code{modify-services} simply provides a more +concise form for this common pattern. @deffn {Syntaxe Scheme} modify-services @var{services} @ (@var{type} @var{variable} => @var{body}) @dots{} @@ -24620,10 +25822,11 @@ du système. @cindex services shepherd @cindex PID 1 @cindex système d'init -The @code{(gnu services shepherd)} module provides a way to define services -managed by the GNU@tie{}Shepherd, which is the initialization system---the -first process that is started when the system boots, also known as -PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}). +Le module @code{(gnu services shepherd)} fournit une manière de définir les +services gérés par le GNU@tie{}Shepherd, qui est le système d'initialisation +— le premier processus démarré lorsque le système démarre, aussi connu comme +étant le PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd +Manual}). Les services dans le Shepherd peuvent dépendre les uns des autres. Par exemple, le démon SSH peut avoir besoin d'être démarré après le démon @@ -24638,10 +25841,9 @@ Vous pouvez générer un tel graphe pour n'importe quelle définition de système d'exploitation avec la commande @command{guix system shepherd-graph} (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}}). -La variable @var{%shepherd-root-service} est un objet de service -représentant le PID@tie{}1, de type @var{shepherd-root-service-type} ; il -peut être étendu en lui passant des listes d'objets -@code{<shepherd-service>}. +The @code{%shepherd-root-service} is a service object representing +PID@tie{}1, of type @code{shepherd-root-service-type}; it can be extended by +passing it lists of @code{<shepherd-service>} objects. @deftp {Type de données} shepherd-service Le type de données représentant un service géré par le Shepherd. @@ -24676,7 +25878,7 @@ Shepherd (@pxref{G-Expressions}). C'est une liste d'objets @code{shepherd-action} (voir plus bas) définissant des @dfn{actions} supportées par le service, en plus des actions @code{start} et @code{stop} standards. Les actions listées ici sont -disponibles en tant que sous-commande de @command{herd}. +disponibles en tant que sous-commande de @command{herd} : @example herd @var{action} @var{service} [@var{arguments}@dots{}] @@ -24689,10 +25891,10 @@ Une chaîne de documentation, montrée lorsqu'on lance : herd doc @var{service-name} @end example -où @var{service-name} est l'un des symboles dans @var{provision} +where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). -@item @code{modules} (par défaut : @var{%default-modules}) +@item @code{modules} (default: @code{%default-modules}) C'est la liste des modules qui doivent être dans le contexte lorsque @code{start} et @code{stop} sont évalués. @@ -24705,7 +25907,7 @@ implémentées par un service Shepherd (voir au-dessus). @table @code @item name -Symbole nommant l'action +Symbole nommant l'action. @item documentation C'est une chaîne de documentation pour l'action. Elle peut être consultée @@ -24861,7 +26063,7 @@ débogage dans le sous-répertoire @code{lib/debug} d'une sortie séparée du paquet appelée sans grande imagination @code{debug} (@pxref{Des paquets avec plusieurs résultats}). Les utilisateurs peuvent choisir d'installer la sortie @code{debug} d'un paquet lorsqu'ils en ont besoin. Par exemple, la commande suivante installe les informations de débogage pour la bibliothèque C de GNU -et pour GNU Guile. +et pour GNU Guile : @example guix package -i glibc:debug guile:debug @@ -24907,7 +26109,7 @@ suivre les vulnérabilités connues et d'appliquer des correctifs aussi vite que possible dans la branche @code{master} de Guix (nous n'avons pas encore de branche « stable » contenant seulement des mises à jour de sécurité). L'outil @command{guix lint} aide les développeurs à trouver les versions -vulnérables des paquets logiciels dans la distribution. +vulnérables des paquets logiciels dans la distribution : @smallexample $ guix lint -c cve @@ -24944,12 +26146,11 @@ typiquement très bas, et plusieurs ordres de grandeurs moins élevé que de reconstruire tout la chaîne de dépendance. @cindex remplacement de paquet, pour les greffes -Par exemple, supposons qu'une mise à jour de sécurité doive être appliquée à -Bash. Les développeurs de Guix fourniront une définition de paquet pour le -Bash « corrigé », disons @var{bash-fixed}, de la manière habituelle -(@pxref{Définition des paquets}). Ensuite, la définition originale du paquet est -augmentée avec un champ @code{replacement} qui pointe vers le paquet -contenant le correctif de sécurité : +For instance, suppose a security update needs to be applied to Bash. Guix +developers will provide a package definition for the ``fixed'' Bash, say +@code{bash-fixed}, in the usual way (@pxref{Définition des paquets}). Then, the +original package definition is augmented with a @code{replacement} field +pointing to the package containing the bug fix: @example (define bash @@ -24959,22 +26160,22 @@ contenant le correctif de sécurité : (replacement bash-fixed))) @end example -À partir de maintenant, tout paquet dépendant directement ou indirectement -de Bash — rapporté par @command{guix gc --requisites} (@pxref{Invoquer guix gc}) — installé est automatiquement « réécrit » pour se référer à -@var{bash-fixed} au lieu de @var{bash}. Ce processus de greffe prend du -temps en proportion de la taille du paquet, typiquement moins d'une minute -pour un paquet de taille « moyenne » sur une machine récente. La greffe est -récursive : lorsqu'une dépendance indirecte a besoin d'être greffée, la -greffe se « propage » jusqu'au paquet que l'utilisateur installe. +From there on, any package depending directly or indirectly on Bash---as +reported by @command{guix gc --requisites} (@pxref{Invoquer guix gc})---that +is installed is automatically ``rewritten'' to refer to @code{bash-fixed} +instead of @code{bash}. This grafting process takes time proportional to +the size of the package, usually less than a minute for an ``average'' +package on a recent machine. Grafting is recursive: when an indirect +dependency requires grafting, then grafting ``propagates'' up to the package +that the user is installing. -Actuellement la longueur du nom et la version de la greffe et du paquet -qu'il remplace (@var{bash-fixed} et @var{bash} dans l'exemple ci-dessus) -doivent être identiques. Cette restriction vient surtout du fait que la -greffe fonctionne en corrigeant les fichiers, dont des fichiers binaires, -directement. D'autres restrictions peuvent apparaître : par exemple, si -vous ajoutez une greffe à un paquet fournissant une bibliothèque partagée, -la bibliothèque partagée originale et son remplacement doivent avoir le même -@code{SONAME} et être compatibles au niveau binaire. +Currently, the length of the name and version of the graft and that of the +package it replaces (@code{bash-fixed} and @code{bash} in the example above) +must be equal. This restriction mostly comes from the fact that grafting +works by patching files, including binary files, directly. Other +restrictions may apply: for instance, when adding a graft to a package +providing a shared library, the original shared library and its replacement +must have the same @code{SONAME} and be binary-compatible. L'option en ligne de commande @option{--no-grafts} vous permet d'éviter les greffes (@pxref{Options de construction communes, @option{--no-grafts}}). Donc la @@ -25003,8 +26204,8 @@ guix gc -R `readlink -f ~/.guix-profile` | grep bash @end example @noindent -@dots{} and compare the store file names that you get with those above. -Likewise for a complete Guix system generation: +@dots{} et comparer les noms de fichiers que vous obtenez avec ceux du +dessus. De la même manière pour une génération du système Guix : @example guix gc -R `guix system build my-config.scm` | grep bash |