diff options
Diffstat (limited to 'doc/README.org')
-rw-r--r-- | doc/README.org | 168 |
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 |