Why use Guix ?
GNU Guix is a package managing tool, that can build from source with dependencies, set up user environments and can upgrade/downgrade installed packages.
- Easy to install and maintain packaged software. One line on the terminal can update or install a package.
- Guix creates an isolated yet shared environment. Each piece of software is installed in /gnu/store and does not alter global state and the user profiles link to this directory.
- User profiles are independent from each other. You can even create a specific user profile per project and this helps with reproducibility.
- Guix can be used in an HPC environment or individual machines connected to the same network (described here)
How to install software using Guix
If you have GNU Guix set up, installing pre-packaged software is super easy. And we have most of the popular tools already packaged. For example, below is how to install samtools.
guix package -i samtools
Setting up GNU Guix is also easy. Just follow the instructions provided by Ricardo Wurmus (who packaged most of the bioinformatics software for Guix by the way)
How to contribute Guix and/or Guix bioinformatics packages.
The suggested way to contribute to upstream is to use a git checkout, make changes there, create a patch with
git format-patchand send that to firstname.lastname@example.org (https://lists.gnu.org/mailman/listinfo/guix-devel)
There's also a contribution page:http://www.gnu.org/software/guix/contribute/
Luckily, getting started with development is relatively simple:
- git clone git://git.savannah.gnu.org/guix.git
- if you already have guix do
guix environment guixto load up everything you need to build guix from source
/varto make it use the same state as your binary installation of guix),
- edit package modules in
./pre-inst-env guix lintto find common problems (
pre-inst-envmakes guix use the packages in the local directory)
- build the new package with
./pre-inst-env guix build my-package
- if everything works fine: commit and create a patch with
git format-patch -1
- send the file to the mailing list email@example.com for review