aboutsummaryrefslogtreecommitdiff
path: root/doc/README.org
diff options
context:
space:
mode:
Diffstat (limited to 'doc/README.org')
-rw-r--r--doc/README.org168
1 files changed, 144 insertions, 24 deletions
diff --git a/doc/README.org b/doc/README.org
index fd19141c..ecc9b799 100644
--- a/doc/README.org
+++ b/doc/README.org
@@ -2,10 +2,19 @@
* Table of Contents :TOC:
- [[#introduction][Introduction]]
- - [[#binary-deployment-wip][Binary deployment (WIP)]]
- - [[#install-genenetwork-server][Install genenetwork server]]
+ - [[#binary-deployment][Binary deployment]]
+ - [[#install-guix-using-a-tar-ball][Install Guix using a tar ball]]
+ - [[#fix-locale][Fix locale]]
+ - [[#authorize-our-archives][Authorize our archives]]
+ - [[#download-and-install-the-gn2-archive][Download and install the GN2 archive]]
+ - [[#source-deployment][Source deployment]]
+ - [[#install-guix][Install guix]]
+ - [[#checkout-the-git-repositories][Checkout the git repositories]]
+ - [[#run-guix-daemon][Run guix-daemon]]
+ - [[#install-gn2][Install GN2]]
+ - [[#run-gn2][Run GN2]]
- [[#run-mysql-server][Run MySQL server]]
- - [[#start-the-gn2-server][Start the GN2 server]]
+ - [[#other][Other]]
- [[#source-deployment-and-other-information-on-reproducibility][Source deployment and other information on reproducibility]]
* Introduction
@@ -15,30 +24,136 @@ explain the GeneNetwork deployment system which is based on GNU Guix
(see also Pjotr's [[https://github.com/pjotrp/guix-notes/blob/master/README.md][Guix-notes]]). The Guix system can be used to install
GN with all its files and dependencies.
-* Binary deployment (WIP)
+* Binary deployment
+
+Note binary deployment is not working pending a few improvements
+to GNU Guix. See source deployment instead.
+
+** Install Guix using a tar ball
GN can be deployed either as a binary tarball or as a GNU Guix
package. First install GNU Guix following the instructions of the
-[[https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html#Binary-Installation][binary installation]] using a tar ball from [[https://www.gnu.org/software/guix/download/][here]] and, update guix with a
-'guix pull' and make guix visible in the path. More information
-exists also in my [[https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org][guix-notes]].
+[[https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html#Binary-Installation][binary installation]] using a tar ball from [[https://www.gnu.org/software/guix/download/][here]].
-With guix running you should be able to install python, for example.
+With guix-daemon running you should be able to install the hello
+package:
-: guix package -i python2
+: guix package -i hello
-This will make python appear in $HOME/.guix-profile/bin/python. Suggested
-environment settings can be seen with
+** Fix locale
-: guix package --search-paths
+You may want to
+
+#+begin_src sh :lang bash
+export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
+export LC_ALL=en_US.utf8
+#+end_src sh :lang bash
+
+** Authorize our archives
+
+Next add our archive key to guix (as root):
+
+#+begin_src scheme
+echo "(public-key
+ (ecc
+ (curve Ed25519)
+ (q #E9A95686D8437186302E07C7AB9BF3913F435026C2D389AF27D9C66FD6EBB649#)
+ )
+ )
+"|guix archive --authorize
+#+end_src scheme
+
+if you have trouble finding a suitable guix try
+
+: ls /gnu/store/*guix-*/bin/guix
+
+and you should be able to use this directly, e.g.
+
+: alias guix=/gnu/store/632msbms2yaldfnlrb5lbnlnmn9yjisw-guix-0.9.0/bin/guix
+: guix --version
+
+** Download and install the GN2 archive
+
+Find the archive on
+
+ http://files.genenetwork.org/software/
+
+download and install with
+
+#+begin_src bash
+guix archive --import < genenetwork2-data-hash.nar
+#+end_src bash
+
+and you should see a list of packages installing, e.g.
+
+#+begin_src bash
+importing path `/gnu/store/l1zs2drn3zdzl5ysjcmhibcpa35p9zfc-python2-mysqlclient-1.3.7'
+importing path `/gnu/store/n7kfg4knibvblggy8ci2liscl7vz5wkg-python2-parallel-1.6.4'
+importing path `/gnu/store/qvv16qwlq59gp5d07lwbf5n8ndsi3il3-python2-sqlalchemy-1.0.11'
+importing path `/gnu/store/qw872mbmr9ir0a9drv9xw9pvjk05ywwy-python2-xlsxwriter-0.8.4'
+importing path `/gnu/store/wc112m1xfy3p08v14bdzay2ki2rirdsm-pylmm-gn2-1.0-3c6d1cac8'
+importing path `/gnu/store/zfkcy17c2ks3cd9ks14irdabqvmlfpyn-python2-flask-sqlalchemy-2.1'
+importing path `/gnu/store/cgcjdiz1qylbc372gc3nda3372ihkpqb-genenetwork2-2.0-a8fcff4'
+(etc.)
+#+end_src bash
+
+The following packages need to be added and the R path set
+
+: export R_LIBS_SITE="/home/wrk/.guix-profile/site-library/"
+: guix package -i /gnu/store/w0dqg9dshq53j8xhcnqgvnvms2s6y5k5-r-wgcna-1.49-425bc170cc0873ddbd414675ac40f6d4d724c7cb
+: guix package -i /gnu/store/k60bdlm0v7xic88j2z5c1jb1jvc371mn-r-qtl-1.38-4
-** Install genenetwork server
+You can add the last one to your profile
-Fetch the nar file and install it after adding the key with, for
-example
+: guix package -i /gnu/store/cgcjdiz1qylbc372gc3nda3372ihkpqb-genenetwork2-2.0-a8fcff
+: export PATH=~/.guix-profile/bin:$PATH
+: genenetwork2
-: cat signing-key.pub |.guix-profile/bin/guix archive --authorize
-: guix archive --import < guix_gn2-2.0-9e9475053.nar
+ or run it directly with
+
+: /gnu/store/cgcjdiz1qylbc372gc3nda3372ihkpqb-genenetwork2-2.0-a8fcff/bin/genenetwork2
+
+* Source deployment
+
+** Install guix
+
+Deploying from source is also straightforward. Install GNU Guix using
+a binary tar ball as described [[https://github.com/pjotrp/guix-notes][here]].
+
+** Checkout the git repositories
+
+Check out the guix and guix-bioinformatics repositories:
+
+#+begin_src bash
+cd ~
+mkdir genenetwork
+cd genenetwork
+git clone https://github.com/genenetwork/guix-bioinformatics
+git clone --recursive --branch gn-latest https://github.com/genenetwork/guix guix-gn-latest
+cd guix-gn-latest
+#+end_src bash
+
+** Run guix-daemon
+
+At this point you may decide to create, install and run a recent
+version of the guix-daemon by compiling the guix repository. Follow
+[[https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org#building-gnu-guix-from-source-using-guix][these]] steps carefully.
+
+** Install GN2
+
+#+begin_src bash
+env GUIX_PACKAGE_PATH=../guix-bioinformatics/ \
+ ./pre-inst-env guix package -i genenetwork2
+#+end_src bash
+
+** Run GN2
+
+#+begin_src bash
+export PATH=~/.guix-profile/bin:$PATH
+genenetwork2
+#+end_src bash
+
+will start the default server which listens on port 5003.
** Run MySQL server
@@ -75,17 +190,22 @@ Set permissions and match password in your settings file below:
: mysql> grant all privileges on db_webqtl_s.* to gn2@"localhost" identified by 'mysql_password';
-** Start the GN2 server
-Copy the default_settings.py file and modify
+** Other
+
+Update guix with a 'guix pull' and make guix visible in the path.
+More information exists also in my [[https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org][guix-notes]].
-: DB_URI = """mysql://gn2:mysql_password@localhost/db_webqtl"""
-: SQLALCHEMY_DATABASE_URI = 'mysql://gn2:mysql_password/db_webqtl'
-: SECRET_KEY = 'secret_key'
+With guix running you should be able to install python, for example.
+
+: guix package -i python2
+
+This will make python appear in $HOME/.guix-profile/bin/python. Suggested
+environment settings can be seen with
+
+: guix package --search-paths
-Start the server with your settings file
-: ./bin/genenetwork2 ~/my_gn2_settings.py
* Source deployment and other information on reproducibility