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
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
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.
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
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: