From 838972fdb2de0e672cc89a3bb2f076d55a44bda5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 19 Jan 2016 09:01:49 -0500 Subject: Fill in all blank slides for Guix talk. --- guix-blu-2016-01-20.org | 73 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 10 deletions(-) (limited to 'guix-blu-2016-01-20.org') diff --git a/guix-blu-2016-01-20.org b/guix-blu-2016-01-20.org index f5f4424..5cc53e6 100644 --- a/guix-blu-2016-01-20.org +++ b/guix-blu-2016-01-20.org @@ -230,6 +230,13 @@ \includegraphics[width=\textwidth]{nsa-vw.png} \end{center} +* Transparent + + Guix is a *source-based* package manager, but will *transparently* + download pre-built binaries from a trusted party, if available. + + Otherwise, it will simply build from source. + * Decentralized In Guix, there is *no central point of trust* for receiving @@ -262,16 +269,22 @@ * Atomic + Package installation/removal and full-system updates are *atomic* + operations, meaning that either the operation succeeds, or nothing + happens. +* Roll back -* Atomic + /Any/ package transaction may be *rolled back*, likewise for + full-system upgrades. - /Any/ package transaction may be *rolled back* + If a full-system update goes wrong, just boot into the previous + working generation! * Coexistence - Each package has its own *unique* directory in the store in which to - write build artifacts. + Each package has its own *unique* directory in the store that + contains its build artifacts. You can have every version of Ruby, Python, and Perl under the sun and that’s OK! @@ -401,19 +414,48 @@ Demo Emacs UI, web prototype -* Importing packages from elsewhere +* Importing packages + + The =guix import= tool that can *automatically generate code + snippets* for packages found in foreign systems. - guix import + Supported systems include: PyPI, RubyGems, CPAN, Hackage, ELPA, and + CRAN. - guix refresh +* Auto-updating + + The =guix refresh= tool can automatically find the latest release of + certain software. + + For example, Python packages can be updated by querying PyPI for + information on the latest release. * Demo! =guix import= -* Development environments +* Reproducible development environments + + Getting the dependencies needed to create development environments + can be tough. + + Many languages invent their own solution, but this is a general + problem. - WRITEME +* Reproducible development environments + + Guix has a tool for this: =guix environment= + + Think of it like a language-agnostic version of Python’s + =virtualenv=. + +* Reproducible development environments + + Environments can be *purified* via standard environment variables + or, for better isolation, Linux containers. + + This allows developers to have confidence that potential + contributors will be able to build their software. * Demo! @@ -421,7 +463,18 @@ * Full-system configuration - WRITEME + The Guix System Distribution supports a *consistent whole-system + configuration mechanism*. + + All aspects of a system configuration are *declared* in a single + place. + +* Advantages + + Easy to replicate configuration on different machines *without + resorting to additional tools* layered on top. + + System upgrades are atomic and can be rolled back. * Example system configuration -- cgit v1.2.3