Edit this page | Blame

Installation with Guix

Large system deployments can get very complex. In this document we explain the GeneNetwork reproducible deployment system which is based on GNU Guix The Guix system can be used to install GN with all its files and dependencies.

Note that for GeneNetwork webservices the official deployment works through a Guix VM. This is described in

Installing Guix packages

You can kick off and create a new profile with a recent guix bootstrapping from any other guix installed on your system. If you have /gnu/store you have guix.

Otherwise, make sure to install GNU Guix using the binary download instructions on the main website. Follow the instructions on Note the download amounts to several GBs of data.

So best is just to install the downloadable binary from the Guix website.

and run (as root)

sh guix-install.sh

Debian-derived distros (no longer) may support

apt-get install guix

Update Guix with our guix-bioinformatics channel

We run a GNU Guix channel with packages at

wget "https://git.genenetwork.org/guix-bioinformatics/plain/channels.scm.example"
mv channels.scm.example channels.scm
mkdir ~/opt
guix pull -p ~/opt/guix-pull --url=https://codeberg.org/guix/guix --channels=channels.scm

It should upgrade (ignore the locales warnings). Note also that you can optionally specify a specific git checkout of guix, which is useful when you need to roll back to an earlier version (sometimes our channel goes out of sync.

Pull the new profile and list packages with

unset GUIX_PROFILE # on Debian
source ~/opt/guix-pull/etc/profile
guix package -A
guix build PACKAGE

You can normally ignore the warnings.

Create Docker or Singularity container

Guix can create containers with the pack command. E.g. instead of installing packge do

guix pack -f docker -S /bin=bin PACKAGE

or, for Singularity

guix pack -f squashfs -S /bin=bin PACKAGE

See

Troubleshooting

Guix should install the software without trying to build everything. If you system insists on building all packages, try the `--dry-run` switch and fix the [[https://guix.gnu.org/manual/en/html_node/Substitute-Server-Authorization.html][substitutes]].

We have our own binary substitutes server that you may add:

Add the https://cuirass.genenetwork.org to the list of your substitute servers.

Once we have a GNU Guix profile, a running database (see below) and the file storage, we should be ready to fire up GeneNetwork:

(made with skribilo)