aboutsummaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'index.html')
-rw-r--r--index.html138
1 files changed, 77 insertions, 61 deletions
diff --git a/index.html b/index.html
index abbc52c..2581114 100644
--- a/index.html
+++ b/index.html
@@ -183,7 +183,7 @@
there is still room for improvement.
Sometimes, package managers have the option to install
- software without building it from source by fetching some
+ software without building it from source, by fetching some
corresponding binary package. But you may want to build
the software from source anyway, and this can be tricky.
@@ -221,7 +221,7 @@
package, and being able to remove or upgrade software,
without worrying about causing problems are all issues of
user control and user freedom.
-
+
I think Guix is a tool that can help, so how does it work?
</aside>
</section>
@@ -234,7 +234,7 @@
important concepts to cover first.
These are not new concepts, to put things in perspective,
- here is a timeline.
+ here is a timeline.
</aside>
</section>
@@ -253,12 +253,14 @@
<div class="timeline-block timeline-block-right" style="height: 36%;">
<div class="marker"></div>
<div class="timeline-content">
- <h3>2004</h3> Nix: A Safe and Policy-Free System for
- Software Deployment
+ <h3>2004</h3> Nix Paper
+ <small>
+ A Safe and Policy-Free System for Software Deployment
+ </small>
</div>
</div>
- <div class="timeline-block timeline-block-left" style="height: 22%;">
+ <div class="timeline-block timeline-block-left" style="height: 34%;">
<div class="marker"></div>
<div class="timeline-content">
<h3>2012</h3>
@@ -319,6 +321,60 @@
</section>
<section>
+ <h2>7 key properties</h2>
+
+ <ul>
+ <li>Handle multiple versions/variants</li>
+ <li>Per system, user or more general profiles</li>
+ <li>Tooling for reproducible builds</li>
+ <li>Hybrid source/binary package management</li>
+ <li>Support for multiple platforms</li>
+ <li>Comprehensive set of tooling</li>
+ <li>Extensibility through Guile</li>
+ </ul>
+ </section>
+
+ <section>
+ <h2>The hello package</h2>
+
+ <small class="stretch"><pre>
+ <code class="scheme">(define-public hello
+ (package
+ (name "hello")
+ (version "2.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/hello/hello-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
+ (build-system gnu-build-system)
+ (synopsis "Hello, GNU world: An example GNU package")
+ (description
+ "GNU Hello prints the message \"Hello, world!\" and then exits. It
+serves as an example of standard GNU coding practices. As such, it supports
+command-line arguments, multiple languages, and so on.")
+ (home-page "https://www.gnu.org/software/hello/")
+ (license gpl3+)))</code></pre></small>
+
+ <aside class="notes" data-markdown>
+ This is the package for GNU hello, that corresponds to the
+ derivation for GNU hello.
+
+ Packages are the term used within Guix for an individual
+ bit of software.
+
+ Unless you write some custom code for creating packages,
+ this is as simple as they get.
+
+ The complexity of building hello is hidden away entirely
+ in the build system, the gnu-build-system in the case of
+ GNU hello.
+ </aside>
+ </section>
+
+ <section>
<h2>The store</h2>
<pre class="fragment">/gnu/store/<span class="fragment highlight-current-green">wf65hjwqwpz4wllasn63zysi5irql2sx</span>-hello-2.10
@@ -331,12 +387,13 @@
│ └── ...
└── man
└── ...
-</pre>
+ </pre>
<aside class="notes" data-markdown>
- We start with the store, a special directory where files,
- and the outputs from derivations that have been built
- successfully are stored.
+ One of the key things that goes in to providing the
+ properties mentioned earlier is the store, a special
+ directory where files, and the outputs from derivations
+ that have been built successfully are stored.
When using Guix, the location of the store is /gnu/store.
@@ -488,7 +545,7 @@
</aside>
</section>
- <section data-transition="fade-in">
+ <section data-transition="fade">
<pre>$ guix build --derivations hello
/gnu/store/1drc59xkcvgdphzgylxm41ln9p5dwbgn-hello-2.10.drv</pre>
@@ -561,7 +618,7 @@
</aside>
</section>
- <section>
+ <section data-transition="fade-in">
<code>
<pre>$ guix build --derivations hello
/gnu/store/1drc59xkcvgdphzgylxm41ln9p5dwbgn-hello-2.10.drv</pre>
@@ -665,7 +722,7 @@
<section data-background-color="white">
<img class="noborder" src="hello-derivation-graph.svg">
- <span class="caption">
+ <span class="caption" style="color:black;">
Derivation graph for the hello package
</span>
@@ -727,47 +784,6 @@
</section>
<section>
- <h2>The hello package</h2>
-
- <small class="stretch"><pre>
- <code class="scheme">(define-public hello
- (package
- (name "hello")
- (version "2.10")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/hello/hello-" version
- ".tar.gz"))
- (sha256
- (base32
- "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
- (build-system gnu-build-system)
- (synopsis "Hello, GNU world: An example GNU package")
- (description
- "GNU Hello prints the message \"Hello, world!\" and then exits. It
-serves as an example of standard GNU coding practices. As such, it supports
-command-line arguments, multiple languages, and so on.")
- (home-page "https://www.gnu.org/software/hello/")
- (license gpl3+)))</code></pre></small>
-
- <aside class="notes" data-markdown>
- This is the package for GNU hello, that corresponds to the
- derivation for GNU hello.
-
- Packages are the term used within Guix for an individual
- bit of software. For example, guix itself is available as
- a package.
-
- Unless you write some custom code for creating packages,
- this is as simple as they get.
-
- The complexity of building hello is hidden away entirely
- in the build system, the gnu-build-system in the case of
- GNU hello.
- </aside>
- </section>
-
- <section>
<h1>What can you do with Guix?</h1>
<aside class="notes" data-markdown>
@@ -782,7 +798,7 @@ command-line arguments, multiple languages, and so on.")
<h2>Install a package in to your profile</h2>
<code>
- guix package -i hello
+ guix install hello
</code>
<aside class="notes" data-markdown>
@@ -808,7 +824,7 @@ command-line arguments, multiple languages, and so on.")
<h2>Upgrade the packages in your profile</h2>
<code>
- guix package -u
+ guix upgrade
</code>
<aside class="notes" data-markdown>
@@ -840,7 +856,7 @@ command-line arguments, multiple languages, and so on.")
</section>
<section data-transition="fade-out">
- <pre>guix package -i samtools bowtie</pre>
+ <pre>guix install samtools bowtie</pre>
<img class="stretch noborder" src="profile-0.svg">
<a href="https://git.sv.gnu.org/cgit/guix/maintenance.git/tree/talks/bobkonf2017/profile-0.svg"
class="caption">
@@ -875,7 +891,7 @@ command-line arguments, multiple languages, and so on.")
</section>
<section data-transition="fade">
- <pre>guix package -r bowtie</pre>
+ <pre>guix remove bowtie</pre>
<img class="stretch noborder" src="profile-1.svg">
<a href="https://git.sv.gnu.org/cgit/guix/maintenance.git/tree/talks/bobkonf2017/profile-1.svg"
class="caption">
@@ -926,13 +942,13 @@ command-line arguments, multiple languages, and so on.")
So, we've just covered some of the uses of the guix
package commands.
- Lets go back to that first command, guix package -i hello.
+ Lets go back to that first command, guix install hello.
</aside>
</section>
<section data-background-color="white">
- <code>
- guix package -i hello
+ <code style="color:black;">
+ guix install hello
</code>
<img class="noborder fragment" src="hello-derivation-graph.svg">