Functional Package Management with Guix - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year : 2013

Functional Package Management with Guix

Ludovic Courtès
  • Function : Correspondent author
  • PersonId : 938722

Connectez-vous pour contacter l'auteur

Abstract

We describe the design and implementation of GNU Guix, a purely functional package manager designed to support a complete GNU/Linux distribution. Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. It builds upon the low-level build and deployment layer of the Nix package manager. Guix uses Scheme as its programming interface. In particular, we devise an embedded domain-specific language (EDSL) to describe and compose packages. We demonstrate how it allows us to benefit from the host general-purpose programming language while not compromising on expressiveness. Second, we show the use of Scheme to write build programs, leading to "two-tier'' programming system.
Nous présentons la conception et la mise en œuvre de GNU Guix, un gestionnaire de paquets purement fonctionnel pour distribution GNU/Linux. Guix permet les mises à jour et retours en arrière transactionnels, la gestion de paquets sans privilèges, des profiles par utilisateur et le ramasse-miettes. Il s'appuie sur les mécanismes de bas niveau de l'outil Nix pour la construction et le déploiement de paquets. Guix utilise le langage Scheme pour son interface de programmation. En particulier, nous définissons un sous-langage de programmation spécifique plongé dans le langage Scheme pour la définition et la composition de paquets. Nous démontrons comment cela nous permet de bénéficier du langage de programmation généraliste hôte, sans pour autant compromettre l'expressivité. Enfin, nous montrons l'utilisation de Scheme pour les programmes de construction de paquets, produisant ainsi un système de programmation à deux niveaux.
Fichier principal
Vignette du fichier
guix.pdf (241.57 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
Loading...

Dates and versions

hal-00824004 , version 1 (20-05-2013)

Identifiers

Cite

Ludovic Courtès. Functional Package Management with Guix. European Lisp Symposium, Jun 2013, Madrid, Spain. ⟨hal-00824004⟩
1000 View
932 Download

Altmetric

Share

Gmail Facebook X LinkedIn More