about summary refs log tree commit diff
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