From 788a81d96fb9af3356fc2034dae84cc8fdefcb28 Mon Sep 17 00:00:00 2001 From: junos Date: Fri, 9 Dec 2022 15:26:12 +0100 Subject: [PATCH] Update readme with info from supermodule. --- README.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 121 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8176c591..d0ce03c6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ By [MoSHI](https://www.moshi.pitt.edu/), [University of Pittsburgh](https://www. For RAPIDS installation refer to to the [documentation](https://www.rapids.science/1.8/setup/installation/) -## For the installation of the Docker version +### For the installation of the Docker version 1. Follow the [instructions](https://www.rapids.science/1.8/setup/installation/) to setup RAPIDS via Docker (from scratch). @@ -62,7 +62,7 @@ Then follow the "cr-features module" section below. conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' | sed 's/^.*mkl=.*$/ - mkl/' > environment.yml ``` -## cr-features module +### cr-features module This RAPIDS extension uses cr-features library accessible [here](https://repo.ijs.si/matjazbostic/calculatingfeatures). @@ -78,4 +78,122 @@ To use cr-features library: e.g. pip install ./calculatingfeatures if the folder is copied to main parent directory cr-features package has to be built and installed everytime to get the newest version. Or an the newest version of the docker image must be used. - ``` \ No newline at end of file + ``` + +## Updating RAPIDS + +To update RAPIDS, first pull and merge [origin]( https://github.com/carissalow/rapids), such as with: + +```commandline +git fetch --progress "origin" refs/heads/master +git merge --no-ff origin/master +``` + +Next, update the conda and R virtual environment. + +```bash +R -e 'renv::restore(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"))' +``` + +## Custom configuration +### Credentials + +As mentioned under [Database in RAPIDS documentation](https://www.rapids.science/1.6/snippets/database/), a `credentials.yaml` file is needed to connect to a database. +It should contain: + +```yaml +PSQL_STRAW: + database: staw + host: 212.235.208.113 + password: password + port: 5432 + user: staw_db +``` + +where`password` needs to be specified as well. + +## Possible installation issues +### Missing dependencies for RPostgres + +To install `RPostgres` R package (used to connect to the PostgreSQL database), an error might occur: + +```text +------------------------- ANTICONF ERROR --------------------------- +Configuration failed because libpq was not found. Try installing: + * deb: libpq-dev (Debian, Ubuntu, etc) + * rpm: postgresql-devel (Fedora, EPEL) + * rpm: postgreql8-devel, psstgresql92-devel, postgresql93-devel, or postgresql94-devel (Amazon Linux) + * csw: postgresql_dev (Solaris) + * brew: libpq (OSX) +If libpq is already installed, check that either: + (i) 'pkg-config' is in your PATH AND PKG_CONFIG_PATH contains a libpq.pc file; or + (ii) 'pg_config' is in your PATH. +If neither can detect , you can set INCLUDE_DIR +and LIB_DIR manually via: + R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...' +--------------------------[ ERROR MESSAGE ]---------------------------- + :1:10: fatal error: libpq-fe.h: No such file or directory +compilation terminated. +``` + +The library requires `libpq` for compiling from source, so install accordingly. + +### Timezone environment variable for tidyverse (relevant for WSL2) + +One of the R packages, `tidyverse` might need access to the `TZ` environment variable during the installation. +On Ubuntu 20.04 on WSL2 this triggers the following error: + +```text +> install.packages('tidyverse') + +ERROR: configuration failed for package ‘xml2’ +System has not been booted with systemd as init system (PID 1). Can't operate. +Failed to create bus connection: Host is down +Warning in system("timedatectl", intern = TRUE) : + running command 'timedatectl' had status 1 +Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : + namespace ‘xml2’ 1.3.1 is already loaded, but >= 1.3.2 is required +Calls: ... namespaceImportFrom -> asNamespace -> loadNamespace +Execution halted +ERROR: lazy loading failed for package ‘tidyverse’ +``` + +This happens because WSL2 does not use the `timedatectl` service, which provides this variable. + +```bash +~$ timedatectl +System has not been booted with systemd as init system (PID 1). Can't operate. +Failed to create bus connection: Host is down +``` + +and later + +```bash +Warning message: +In system("timedatectl", intern = TRUE) : + running command 'timedatectl' had status 1 +Execution halted +``` + +This can be amended by setting the environment variable manually before attempting to install `tidyverse`: + +```bash +export TZ='Europe/Ljubljana' +``` + +## Possible runtime issues +### Unix end of line characters + +Upon running rapids, an error might occur: + +```bash +/usr/bin/env: ‘python3\r’: No such file or directory +``` + +This is due to Windows style end of line characters. +To amend this, I added a `.gitattributes` files to force `git` to checkout `rapids` using Unix EOL characters. +If this still fails, `dos2unix` can be used to change them. + +### System has not been booted with systemd as init system (PID 1) + +See [the installation issue above](#Timezone-environment-variable-for-tidyverse-(relevant-for-WSL2)).