From fe44db448c7db9957c7cb2291bb6529ccf808ad1 Mon Sep 17 00:00:00 2001 From: rekado Date: Sun, 21 Jun 2015 21:50:29 +0200 Subject: posts: New article. --- .../2015-06-21-getting-started-with-guix.markdown | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 posts/2015-06-21-getting-started-with-guix.markdown (limited to 'posts/2015-06-21-getting-started-with-guix.markdown') 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). -- cgit v1.2.3