Functional Package Management with Guix

Ludovic Courtès 1, *
* Corresponding author
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.
Document type :
Conference papers
Complete list of metadatas

Cited literature [20 references]  Display  Hide  Download

https://hal.inria.fr/hal-00824004
Contributor : Ludovic Courtès <>
Submitted on : Monday, May 20, 2013 - 3:33:14 PM
Last modification on : Monday, April 9, 2018 - 12:20:03 PM
Long-term archiving on : Tuesday, April 4, 2017 - 8:31:01 AM

Files

guix.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-00824004, version 1
  • ARXIV : 1305.4584

Citation

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

Share

Metrics

Record views

639

Files downloads

583