posts: New article.
authorrekado <rekado@elephly.net>
Sun, 21 Jun 2015 19:50:29 +0000 (21:50 +0200)
committerrekado <rekado@elephly.net>
Sun, 21 Jun 2015 19:50:29 +0000 (21:50 +0200)
posts/2015-06-21-getting-started-with-guix.markdown [new file with mode: 0644]

diff --git a/posts/2015-06-21-getting-started-with-guix.markdown b/posts/2015-06-21-getting-started-with-guix.markdown
new file mode 100644 (file)
index 0000000..25dfb00
--- /dev/null
@@ -0,0 +1,105 @@
+---
+title: Getting started with GNU Guix
+date: 2015/06/21
+tags: free software, system administration, packaging, guix
+---
+
+[Previously I wrote](/posts/2015-04-17-gnu-guix.html) about how using
+GNU Guix in an HPC environment enables easy software deployment for
+multiple users with different needs when it comes to application and
+library versions.  Although Guix comes with an excellent manual which
+is also
+[available online](https://www.gnu.org/software/guix/manual/guix.html),
+some people may want to have just some simple installation
+instructions in one place and some pointers to get started.  I'm
+attempting to provide just that with this article.
+
+While Guix can be built from source it is much more convenient to use
+the self-contained tarball which provides pre-built binaries for Guix
+and all its dependencies.  You need to have GNU tar and xz installed
+to unpack the tarball.  Note that the tarball will only work on
+GNU/Linux systems; it will not work on MacOS.
+
+
+## Six simple steps
+
+*First*, if you are using a 64 bit machine, download the compressed
+[x86_64 archive from the FTP server](ftp://alpha.gnu.org/gnu/guix/guix-binary-0.8.2.x86_64-linux.tar.xz).
+There also is a
+[tarball for 32 bit machines](ftp://alpha.gnu.org/gnu/guix/guix-binary-0.8.2.i686-linux.tar.xz)
+and
+[one for the less common MIPS](ftp://alpha.gnu.org/gnu/guix/guix-binary-0.8.2.mips64el-linux.tar.xz).
+
+*Second*, unpack the archive as root in the root directory:
+
+    # cd /
+    # tar xf guix-binary-0.8.2.SYSTEM.tar.xz
+
+This creates a pre-populated store at `/gnu/store` (containing the
+"guix" package and the complete dependency graph), the *local state
+directory* `/var/guix`, and a Guix profile for the root user at
+`/root/.guix-profile`, which contains the guix command line tools and
+the daemon.
+
+*Third*, create a build user pool, as root:
+
+     # groupadd --system guix-builder
+     # for i in `seq 1 10`;
+       do
+         useradd -g guix-builder -G guix-builder           \
+                 -d /var/empty -s `which nologin`          \
+                 -c "Guix build user $i" --system          \
+                 guix-builder$i;
+       done
+
+These are the restricted user accounts which are used by the daemon to
+build software in a controlled environment.  You may not need ten, but
+it's a good default.
+
+*Fourth*, run the daemon and tell it about the `guix-builder` group:
+
+    # /root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder
+
+*Fifth*, make the `guix` command available to other users on the
+ machine by linking it to a location everyone can access, such as
+ `/usr/local/bin`.
+
+    # mkdir -p /usr/local/bin
+    # cd /usr/local/bin
+    # ln -s /root/.guix-profile/bin/guix
+
+Now any user---not just the almighty root---can install software by
+invoking `guix package -i whatever`.  Yay!
+
+*Finally*, if you do not want to build all software locally (which can
+ take a very long time) and you think you can trust the GNU Guix build
+ farm hydra.gnu.org, authorise it as a source for so-called binary
+ substitutes using the included public key:
+
+    # guix archive --authorize < /root/.guix-profile/share/guix/hydra.gnu.org.pub
+
+Note that hydra.gnu.org isn't at all special.  Packages are built
+there continuously from source.  Guix is flexible and can pull binary
+substitutes from other locations as long as you authorise them.
+
+# Where to go from here
+
+Congratulations!  You now have a fully functional installation of the
+Guix package manager.
+
+To get the latest package recipes for Guix just run `guix pull`, which
+will download and compile the most recent development version.
+
+I recommend reading the excellent Guix reference manual, which is
+[available on the web](https://www.gnu.org/software/guix/manual/guix.html)
+and, of course, included as an Info document in your Guix
+installation.  If you don't have Emacs---the best Info reader, which
+also happens to be an excellent text editor---I encourage you to
+install it from Guix; it is just a `guix package -i emacs` away!
+
+If you have questions that are not covered by the manual feel free to
+chat with members of the Guix community
+[on IRC in the #guix channel on Freenode](https://webchat.freenode.net/?channels=#guix).
+For matters relating to using Guix in a bioinformatics environment you
+are welcome to subscribe and write to the
+[mailing list bio-packaging@mailman.open-bio.org](http://lists.open-bio.org/mailman/listinfo/bio-packaging).