summaryrefslogtreecommitdiff
path: root/posts
diff options
context:
space:
mode:
authorrekado <rekado@elephly.net>2015-06-21 21:50:29 +0200
committerrekado <rekado@elephly.net>2015-06-21 21:50:29 +0200
commitfe44db448c7db9957c7cb2291bb6529ccf808ad1 (patch)
tree11e611a886c5ea05eed2e691aec575974df9ded3 /posts
parentbc3386254b35ab50913e994873a35d94ae8c09db (diff)
posts: New article.
Diffstat (limited to 'posts')
-rw-r--r--posts/2015-06-21-getting-started-with-guix.markdown105
1 files changed, 105 insertions, 0 deletions
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
index 0000000..25dfb00
--- /dev/null
+++ b/posts/2015-06-21-getting-started-with-guix.markdown
@@ -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).